在以下用例中,也有许多建议使用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/

10-10 16:30