如何使用Java中的迭代器对象从集合中删除元素?
Java中的集合是一组接口,如 List、Set 和 Queue。 Java中的迭代器用于迭代或遍历 Collection 的元素。 Java中的迭代器分为三种类型,分别是Enumerator 、 Iterator 、 和列表迭代器。
使用 Iterator 从集合中删除元素的两种方法:
- 使用迭代器
- 使用 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