集合框架容易出錯點記錄
阿新 • • 發佈:2018-11-04
//遍歷時刪除元素(刪除元素用Collection或者Set或者List提供的remove(Object)刪除元素會中斷遍歷輸出,如果真要刪除應當使用Iterator介面的remove()方法,儘管開發中不會去刪除遍歷的元素)
package TreeSetTest; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); Iterator<String> it = list.iterator(); List<String> list2= new ArrayList<String>(); while (it.hasNext()) { String str = it.next(); System.out.println("原始" + str);//1234 if(str.equals("2") || str.equals("1")){ //list.remove(str);//如果強制移除此選項那後續輸出將會中斷,其它遍歷方式也一樣 it.remove(); }else{ list2.add(str);//34 } } for (String string : list2) { System.out.println("新的"+string); } } }