遍历集合的时候删除元素
package chapter0902需要看;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
 * 遍历集合的时候删除元素
 * IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index >= size() ) 
 */
public class TestList03 {
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		// 普通for正着删除元素示例,不能彻底删除,打印结果是:a c
		/*
		 * for(int i=0;i<list.size();i++){ // 遍历集合 //
		 * System.out.println(list.get(i)); Object object=list.remove(i);
		 * System.out.println(object); }
		 */
		// ConcurrentModificationException原因:Object object:list中Object&list集合不相等
		/*
		 * 增强for循环 for (Object object : list) {
		 * System.out.println(list.remove(object)); }
		 */
		// 迭代器边边里边删除
		Iterator iter = list.iterator();
		while (iter.hasNext()) {
			// 遍历集合
			Object obj = iter.next();
			// System.out.println(obj);--打印结果:a b c d
			// 让迭代器发生位移操作
			iter.remove();
			/*
			 * 可以看到集合被一个一个的删除: System.out.println(list); 打印结果: a [b, c, d] b [c,
			 * d] c [d] d []
			 */
		}
		// 打印最终结果如下:
		System.out.println("最后打印出:" + list);
	}
}
// 最后打印出:[]
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号