我使用arraylist比较我的selenium webdriver脚本中的元素,我在其中比较了两个不同页面的元素。
那么哪一个更有效率?
使用相同的arraylist或创建新的arraylist?
答案 0 :(得分:0)
removeAll()的源代码(如AbstractCollection中所定义):
public boolean removeAll(Collection<?> c) {
Objects.requireNonNull(c);
boolean modified = false;
Iterator<?> it = iterator();
while (it.hasNext()) {
if (c.contains(it.next())) {
it.remove();
modified = true;
}
}
return modified;
}
clear()的源代码(如ArrayList中所定义):
public void clear() {
modCount++;
// clear to let GC do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
clear()要快得多,因为它不必处理所有这些额外的方法调用,但是我认为实例化一个新的ArrayList是最有效的,特别是在一个非常大的ArrayList中(不需要)迭代集合)。