集合中的remove()方法 与 迭代器中的remove()方法
-
深入remove()方法
- iterator 中的remove()方法
- collection 中的remove(Object)方法
-
注意
通过集合自身的remove()方法删除元素会报异常,因为通过集合中的remove()方法删除元素会改变集合的结构,那么迭代器就认为需要重新获取这个集合,所以会出现异常。
推荐使用迭代器里的remove()方法,如果使用集合的remove()方法,删除元素后记得重新获取一个迭代器。
代码实例
package com.shige.Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionMethod05 {
public static void main(String[] args) {
//深入remove()方法
// 1.iterator 中的remove()方法
// 2.collection 中的remove()方法
// 创建集合
Collection collection= new ArrayList(); //父类引用指向子类对象
// 向集合中添加数据
collection.add(1); //自动装箱
collection.add(2);
collection.add(3);
//创建迭代器
Iterator iterator= collection.iterator();
//遍历迭代器
while(iterator.hasNext()){
Object obj=iterator.next();
// 通过迭代器的remove()方法删除集合中的元素
iterator.remove(); // 往下移动一个元素就会删除一个元素,最后一个元素都没有了。
// 通过集合自身的remove()方法删除元素
collection.remove(obj); //会报错,因为通过集合中的remove()方法删除元素会改变集合的结构,那么迭代器就认为需要重新获取这个集合,所以会出现异常。
// 推荐使用迭代器张的remove()方法,如果使用集合的remove()方法,删除后记得重新获取一个迭代器。
}
// 输出集合的size
System.out.println(collection.size()); //0
}
}