Kam*_*iya 9 java size collections performance is-empty
我已经阅读了很多关于isEmpty()和size()0 之间的区别的文章,对于检查是否collection为空或者没有,并且发现isEmpty()有性能size()但我无法理解为什么性能isEmpty()良好即使内部isEmpty()只有size == 0?
我的问题是:
任何人都可以轻松解释哪种情况isEmpty()更快,以及何时使用isEmpty()和size()功能检查是否collection是empty?
任何人都可以使用代码或其他方式(图表,图表等)解释这一点,以便任何初学者都能轻松理解吗?
可能有些集合只是size()==0在他们的isEmpty()方法中使用,但这并不意味着他们都这样做.默认实现isEmpty()只是检查是否size() == 0,但是如果它更有效,特定集合可以用其他东西来覆盖它.
这是一个很好的例子.该ConcurrentSkipListSet文件说:
请注意,与大多数集合不同,size方法不是常量操作.
对于这门课程,你当然希望使用isEmpty()而不是size() == 0.
(要理解为什么跳过列表是正确的,你需要阅读跳过列表的工作原理,但如果你想了解更多信息,请回来再问一些关于它们的问题.)
基本上我发现
.size()可以是O(1)或O(N),具体取决于data structure; .isEmpty()永远不是O(N)。
| 归档时间: |
|
| 查看次数: |
4351 次 |
| 最近记录: |