集合详解—Iterator接口

Iterator接口

什么是迭代器?

迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。

Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代ArrayList和HasSet等集合。

在这里插入图片描述

Iterator接口两个核心方法:

  • boolean hasNext() : 判断是否还有元素,如果还有元素,返回true。
  • E next() : 返回迭代的下一个元素,如果没有元素可以获取,则返回NOSuchElementException

获取一个迭代器
集合想获取一个迭代器可以使用iterator()方法

import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
    
    
    public static void main(String[] args) {
    
    

        // 创建集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 获取迭代器
        Iterator<String> it = sites.iterator();
        while (it.hasNext()) {
    
    
            String ele = it.next();
            System.out.println(ele);
        }
    }
}

其他方法:

  • void remove() : 从迭代器指定的集合中移除迭代器返回的最后一个元素。
// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        numbers.add(12);
        numbers.add(8);
        numbers.add(2);
        numbers.add(23);
        Iterator<Integer> it = numbers.iterator();
        while(it.hasNext()) {
    
    
            Integer i = it.next();
            if(i < 10) {
    
      
                it.remove();  // 删除小于 10 的元素
            }
        }
        System.out.println(numbers);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44346427/article/details/110729373