次の宣言があります。
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--;
}
}
2番目の方法:
Iterator<String> iterator = list.iterator();
while(iterator.hasNext())
if(iterator.next().equals("2"))
iterator.remove();
両方とも適切に保護されており、どちらがより効率的ですか?
IndexOutOfBounds
エラーを発生させずに ArrayList から要素を削除する他の方法はありますか?