Java中ArrayList.clear() 和 ArrayList.removeAll()有什么不同呢?
下文笔者讲述Arraylist中clear和removeAll方法之间的区别说明,如下所示
两者的功能都是元素删除
clear和removeAll方法的区别在于:
removeAll方法删除元素时,需进行额外的判断
从源码上,我们可以看出clear方法的效率更高
例:clear和removeAll方法源码简介
clear()源码
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
removeAll()源码
public boolean removeAll(Collection<?> c) {
boolean modified = false;
Iterator<?> e = iterator();
while (e.hasNext()) {
if (c.contains(e.next())) {
e.remove();
modified = true;
}
}
return modified;
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


