关于集合元素的删除
- 关于集合元素的remove
- 重点:当集合结构发生了改变,迭代器必须重新获取
- 在迭代元素的过程中,不能调用集合对象的remove方法,删除元素,一定要使用迭代器Iterator的remove方法,删除元素。
- 迭代器删除元素时,会自动更新迭代器,并且更新集合(删除集合中的元素)
- 删除元素,不能用c.remove(obj),这样会使集合结构发生变化
- 编写代码时next()方法返回值类型必须是Object。
- 当集合结构发生了改变,迭代器没有重新获取的时候,调用next()方法时:java.util.ConcurrentModificationException

package com.javase.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 关于集合元素的remove
* 重点:当集合结构发生了改变,迭代器必须重新获取
* 在迭代元素的过程中,不能调用集合对象的remove方法,删除元素,一定要使用迭代器Iterator的remove方法,删除元素。
* */
public class CollectionTest06 {
public static void main(String[] args) {
//创建元素
Collection c= new ArrayList();
//注意:此时获取的迭代器,指向的是那是集合没有获得元素状态下的迭代器。
//一定要注意:集合结构一旦发生改变,迭代器必须要重新获取。
//当集合结构发生了改变,迭代器没有重新获取的时候,调用next()方法时:java.util.ConcurrentModificationException
// Iterator it =c.iterator();
c.add(1);//这里存储的不是1,是new Integer的地址
c.add(2);//Integer类型
c.add(3);
//获取迭代器
Iterator it =c.iterator();
while(it.hasNext()){
//编写代码时next()方法返回值类型必须是Object。
//Integer i = it.next();
Object obj = it.next();
//删除元素,不能用c.remove(obj),这样会使集合结构发生变化
//可以使用迭代器的remove
//迭代器删除元素时,会自动更新迭代器,并且更新集合(删除集合中的元素)
it.remove();//删除的一定是迭代器指向的当前元素。
System.out.println(obj);
}
}
}