这个其实可以看一下,list的add 增加元素. 返回的也是boolean值
List<String> list=new ArrayList<>();
System.out.println(list.add("a"));
//true
System.out.println(list.add("a"));
//true
System.out.println(list.add("a"));
//true
System.out.println(list.add("b"));
//true
所以 这:因为通过源码我们可以看到它通过是否修改原有集合来返回true或者false,而多数情况下,List内容可以重复,所以相当于它的内容始终在改变,所以返回为true) addall 也是这个也好理解了,不同的我们可以看一下addall 使用的是 浅拷贝的
但是使用addall的效率比较高的.应用
ArrayList的addAll的实现为:
[java] view
plaincopy
public boolean addAll(Collection c) {
Object[] a = c.toArray();
int numNew = a.length;
ensureCapacity(size + numNew); // Increments modCount
System.arraycopy(a, 0, elementData, size, numNew);
size += numNew;
return numNew != 0;
}
我们可以得到的结论是:
1.使用内存拷贝,移动数据。
2.本地函数,执行效率高。
那小数据量时呢?
以上2点都不明显,并且首先要调用toArray方法,在小数据量时,效果没有for来的好。