java中for循环时删除和增加
这个问题在网上有很多的解决方法,在这儿总结一下。便于初学者学习。
一、java中for循环时对元素删除
List<String> list = new ArrayList<String>(); for(int i = 0; i < 10; i++){ list.add("" + i); }
for(int i = list.size() - 1; i >= 0; i--){ if(list.get(i).compareTo("4") > 0){ list.remove(list.get(i)); } }
for(Iterator<String> iter = list.iterator(); iter.hasNext();){ String next = iter.next(); if(next.compareTo("4") > 0){ iter.remove(); //list.remove(next); } }
for(int i = 0; i < list.size(); i++){ if(list.get(i).compareTo("4") > 0){ list.remove(list.get(i)); i --; } }
增强for循环是无法在循环的时候删除元素的。原因:https://wenku.baidu.com/view/bcd89befd05abe23482fb4daa58da0116c171fde.html
二、java中循环时对元素增加
int size = list.size();//先获取size,在便利 for(int i =0; i < size; i++){ if(list.get(i).compareTo("4") > 0){ System.out.println(i); list.add(list.get(i)); } }