在以下用例中,也有许多建议使用CollectionUtils.isNotEmpty(coll)
而不是coll != null
。
if (CollectionUtils.isNotEmpty(coll)) {
for (String str : coll) {
}
}
代替
if (coll != null) {
for (String str : coll) {
}
}
是否有任何理由/优势在这里使用
CollectionUtils.isNotEmpty(coll)
而不是其他?谢谢。 最佳答案
这里没有真正的优势。即使有,它也会非常小。它仅阻止创建Iterator
和执行分支指令,仅此而已。
仅当集合为空时,才会产生这种小的优势。以下循环:
for (String str : coll) {
...
}
等效于:
for (Iterator<String> iterator = col.iterator(); iterator.hasNext();) {
String str = iterator.next();
...
}
当集合为空时,对
CollectionUtils.isNotEmpty(coll)
的检查将阻止执行循环。因此,不会在内存中创建Iterator
,也不会调用hasNext()
。这是对O(1)
的coll.isEmpty()
调用的牺牲。关于java - CollectionUtils.isNotEmpty()是否比null检查更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30666524/