Java集合迭代器的介绍与使用

 迭代器(Iterator)

       迭代器在集合遍历时不依赖索引

        Java迭代器(Iterator)是 Java 集合框架中的一种机制,它提供了一种在不暴露集合内部实现的情况下遍历集合元素的方法。Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合

  • 获取迭代器对象

    • Iterator<类型> it=list.iterator();

  • 迭代器方法

    • it.hasNext();判断检查迭代器中是否还有下一个元素,如果有则返回true,没有则返回false

    • in.next();返回当前指针所指位置的元素,并让指针向指向后面一位元素

    • it.remove()。用迭代器的删除方法。不能用集合的删除方法。

  • 遍历注意要点

    • 当迭代器遍历完所有元素后,再次调用next()方法强行获取元素,将引发NoSuchElementException异常。

    • 迭代器遍历完成后,指针不会复位。

    • 在每一次循环过程中确保使用一次next()方法, eg:调用多次,迭代器会跳过一些元素,导致遍历不完整。

    • 在迭代器遍历时,不能用集合方法进行增加或删除。 eg:用来两个变量来分别记录被修改的次数和期望被修改的次数,当调用迭代器的方法时,两个值会同时改变,而调用集合方法时只会改变修改次数。

    • 增强的for循环:Java提供了增强的for循环(也称为foreach循环),可以方便地遍历集合中的元素。使用增强的for循环时,不需要显式地使用迭代器,编译器会自动处理迭代器的创建和遍历。

  • 代码示例
public class IteratorExample {
    public static void main(String[] args) {
        // 创建一个包含整数的集合
        List numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);

        // 获取迭代器对象
        Iterator iterator = numbers.iterator();

        // 使用迭代器遍历集合
        while (iterator.hasNext()) {//判断迭代器内是否还有没被遍历的元素
            int number = iterator.next();//获取下一个元素
            System.out.println(number);

            // 使用迭代器的remove()方法删除元素
            if (number % 2 == 0) {
                iterator.remove(); //注意要用迭代器自带的删除方法!!!
            }
        }

        // 输出修改后的集合
        System.out.println(numbers);
    }
}
  • 列表迭代器(ListIterator)比起普通迭代器多了个添加方法,可以在遍历过程中添加元素

public class ListIteratorExample {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("A");
        list.add("B");
        list.add("C");

        ListIterator iterator = list.listIterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            if (element.equals("B")) {
                iterator.add("D");
            }
        }
        System.out.println(list);
    }
}
//在这个例子中,我们创建了一个包含三个元素的ArrayList。然后,我们使用ListIterator遍历列表,
//并在元素“B”之后添加一个新元素“D”。最后,我们打印出修改后的列表,它包含四个元素“A”、“B”、“D”和“C”。

你可能感兴趣的:(java,开发语言)