1. 程式人生 > >for迴圈呼叫刪除方法報錯解決辦法

for迴圈呼叫刪除方法報錯解決辦法

1.每次刪除一個元素,索引往前移,即i-1.
     List<String> list = new ArrayList<String>();
     list.add("111");
     list.add("222");
     list.add("333");
     list.add("444");
     list.add("555");
     list.add("666");
     for (int i = 0; i < list.size(); i++) {
        String str  = list.get(i);
        if(str.equals("111")){    
            list.remove(str);
            i=i-1;
        }
    }
    list.forEach(str -> System.out.println(str));
2.倒著往前迴圈找,然後刪除符合條件的元素
     List<String> list = new ArrayList<String>();
     list.add("111");
     list.add("222");
     list.add("333");
     list.add("444");
     list.add("555");
     list.add("666");
     for (int i =list.size()-1; i>=0 ; i--) {
        String str  = list.get(i);
        if(str.equals("111")){
            list.remove(str);
        }
    }
    list.forEach(str -> System.out.println(str));
3.迭代器遍歷去除元素
     List<String> list = new ArrayList<String>();
     list.add("111");
     list.add("222");
     list.add("333");
     list.add("444");
     list.add("555");
     list.add("666");
     Iterator<String> iterator = list.iterator();
     while(iterator.hasNext()){
        String str = iterator.next();
        if(str.equals("111")){
            iterator.remove();
        }
    }
    list.forEach(str -> System.out.println(str));