同时查看CollectionUtils addAll方法的源代码.我注意到它使用|=符号
public static <T> boolean addAll(Collection<? super T> c, T... elements) {
boolean result = false;
for (T element : elements)
result |= c.add(element);
return result;
}
Run Code Online (Sandbox Code Playgroud)
从我的理解|=是一个按位或运算符,只是一个简写result = result|c.add(element),所以例如:
System.out.println(false|true); //true
System.out.println(false|false); //false
System.out.println(true|false); //true
System.out.println(true|true); //true
Run Code Online (Sandbox Code Playgroud)
这意味着如果成功添加任何项目,它将返回true.现在我一直想知道会有一个实例,它会返回false吗?如果不是为什么它有回报?
如果要添加的所有元素都已在Collection中(在调用addAll之前),并且Collection不允许重复,则它将返回false,因为所有单个add方法调用都将返回false.这对于诸如此类的集合来说是正确的Set.
对于其他集合,add始终返回true,因此addAll将返回true,除非您使用要添加的空元素列表调用它.
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |