Day07_38_集合中的remove()方法 与 迭代器中的remove()方法

集合中的remove()方法 与 迭代器中的remove()方法

  • 深入remove()方法

      1. iterator 中的remove()方法
      1. 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




       }
   }
上一篇:【2022-01-16】


下一篇:Pytorch-Lightning训练技巧