list 可以添加重复的元素,因此如果使用remove的话,只会把第一给添加进去的元素删除,其他的不受影响,例如:
List list = new ArrayList(); list.add("hello"); list.add("hello"); System.out.println(list); list.remove("hello"); System.out.println(list); 以下是运行结果
其中删除的源码有这么一段,就是从下标为0 开始循环,只要找到删除之后就返回true 了
for (int index = 0; index < size; index++) if (o.equals(elementData[index])) { fastRemove(index); return true; }
removeAll 需要传入一个集合 ,然后全部移除
接下来说add 和addAll的区别
add 如果是添加普通元素 那没什么可说的,如果被添加的也是一个集合的话,他会把被添加的整个集合当成一个元素放进去,如下:
但是addAll 就会把整个集合的元素取出来,当成自己的元素
验证如下: