1. 程式人生 > >集合框架容易出錯點記錄

集合框架容易出錯點記錄

//遍歷時刪除元素(刪除元素用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);
			}
	}
}