Try*_*ing 4 java collections java-7 java-collections-api
许多建议使用CollectionUtils.isNotEmpty(coll)而不是coll != null在下面的用例也。
if (CollectionUtils.isNotEmpty(coll)) {
for (String str : coll) {
}
}
Run Code Online (Sandbox Code Playgroud)
代替
if (coll != null) {
for (String str : coll) {
}
}
Run Code Online (Sandbox Code Playgroud)
有什么理由/优势来CollectionUtils.isNotEmpty(coll)代替这里吗?谢谢。
这里没有真正的优势。即使有,它也会很小。它仅阻止创建Iterator和执行分支指令,仅此而已。
仅当集合为空时,才会产生这种小的优势。以下循环:
for (String str : coll) {
...
}
Run Code Online (Sandbox Code Playgroud)
等效于:
for (Iterator<String> iterator = col.iterator(); iterator.hasNext();) {
String str = iterator.next();
...
}
Run Code Online (Sandbox Code Playgroud)
当集合为空时,选中将CollectionUtils.isNotEmpty(coll)阻止执行循环。因此,不会Iterator在内存中创建任何内容,也不会进行任何调用hasNext()。这是对O(1)调用的费用coll.isEmpty()。
小智 5
反编译显示
public static boolean isEmpty(Collection coll) {
return coll == null || coll.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)