📜  如何使用Java中的迭代器对象从集合中删除元素?

📅  最后修改于: 2022-05-13 01:55:31.998000             🧑  作者: Mango

如何使用Java中的迭代器对象从集合中删除元素?

Java中的集合是一组接口,如 List、Set 和 Queue。 Java中的迭代器用于迭代或遍历 Collection 的元素。 Java中的迭代器分为三种类型,分别是EnumeratorIterator 列表迭代器。

使用 Iterator 从集合中删除元素的两种方法:

  1. 使用迭代器
  2. 使用 ListIterator

方法一:使用迭代器

  • 创建一个列表并使用 add() 方法将元素添加到列表中。
  • Iterator 对象用于使用hasNext()next()方法迭代列表的元素。
  • 一个 if 条件在 while 循环中使用并且当条件满足时,使用remove()方法删除特定元素。
  • 当再次遍历整个列表时,被删除的元素不再出现在列表中。
Java
// Java program to Remove an Element from 
// Collection using Iterator 
  
import java.util.ArrayList;
import java.util.Iterator;
class IteratorDemo 
{
    public static void main(String[] args) 
    {
        ArrayList l = new ArrayList();
        
        for(int i=0;i<=50;i=i+5)
        {
            l.add(i);
        }
        
        Iterator itr = l.iterator();
        
        System.out.println("List before removal");
        
        for(int i=0;i


Java
// Java program to Remove an Element from
// Collection using ListIterator
  
import java.util.ArrayList;
import java.util.ListIterator;
  
public class ListIteratorDemo {
    public static void main(String[] args)
    {
        ArrayList l = new ArrayList();
  
        l.add("January");
        l.add("February");
        l.add("March");
        l.add("April");
        l.add("May");
        l.add("June");
        l.add("July");
        l.add("August");
  
        ListIterator itr = l.listIterator();
  
        System.out.println("List before removal");
  
        for (int i = 0; i < l.size(); i++)
            System.out.print(l.get(i) + " ");
  
        while (itr.hasNext()) {
            if (itr.next().equals("March")) {
                itr.remove();
            }
        }
  
        System.out.println("\nList after removal");
  
        for (int i = 0; i < l.size(); i++)
            System.out.print(l.get(i) + " ");
    }
}


输出
List before removal
0 5 10 15 20 25 30 35 40 45 50 
List after removal
0 10 20 30 40 50

方法 2:使用 ListIterator

  • 创建一个列表并使用 add() 方法将元素添加到列表中。
  • ListIterator 对象用于使用 hasNext() 和 next() 方法迭代列表的元素。
  • 在 while 循环中使用 if 条件,当条件满足时,使用 remove() 方法删除特定元素。
  • 当再次遍历整个列表时,被删除的元素不再出现在列表中。

Java

// Java program to Remove an Element from
// Collection using ListIterator
  
import java.util.ArrayList;
import java.util.ListIterator;
  
public class ListIteratorDemo {
    public static void main(String[] args)
    {
        ArrayList l = new ArrayList();
  
        l.add("January");
        l.add("February");
        l.add("March");
        l.add("April");
        l.add("May");
        l.add("June");
        l.add("July");
        l.add("August");
  
        ListIterator itr = l.listIterator();
  
        System.out.println("List before removal");
  
        for (int i = 0; i < l.size(); i++)
            System.out.print(l.get(i) + " ");
  
        while (itr.hasNext()) {
            if (itr.next().equals("March")) {
                itr.remove();
            }
        }
  
        System.out.println("\nList after removal");
  
        for (int i = 0; i < l.size(); i++)
            System.out.print(l.get(i) + " ");
    }
}
输出
List before removal
January February March April May June July August 
List after removal
January February April May June July August