Java 中关于集合元素的删除

关于集合元素的删除

  • 关于集合元素的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);

        }
    }
}
posted @ 2024-02-01 23:51  十几里路  阅读(95)  评论(0)    收藏  举报