我有以下声明:
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("2");
list.add("3");
list.add("4");
现在我的问题是:如果我想从列表中删除“2”,哪种方式更好?
第一种方式:
for(int i = 0; i < list.size(); i++) {
if(list.get(i).equals("2")) {
list.remove(i);
i--;
}
}
第二种方式:
Iterator<String> iterator = list.iterator();
while(iterator.hasNext())
if(iterator.next().equals("2"))
iterator.remove();
两者都得到妥善保护,哪个更有效?
有没有其他方法可以从 ArrayList 中删除元素而不会IndexOutOfBounds
出错?