Java——迭代器

一、概念

迭代器是对Iterator的称呼,专门用来对Collection集合进行遍历使用的。学习迭代器的目的就是为了遍历集合。

二、迭代器的使用步骤

  1. 先获取集合的迭代器对象
  2. 使用迭代器对象调用hasNext(),判断是否存在下一个元素
  3. 如果有调用next()方法,获取下一个元素
  4. 循环2、3步骤,直道hasNext方法返回false为止
Iterator iter = 集合对象.iterator();
while(iter.hasNext()){
   // 有元素
   元素 = iter.next();
   // 操作元素  
}

例子

// 创建Collection集合,集合中存储String类型元素
        Collection<String> coll = new ArrayList<>();
        // 存储元素
        coll.add("C#");
        coll.add("vue");
        coll.add("PHP");
        coll.add("GO");
        // 遍历集合
        // 第1步:获取集合的迭代器对象
        Iterator<String> iter = coll.iterator();
        // 第2步:循环 使用迭代器判断集合中是否有下一个元素
        while(iter.hasNext()){
            // 第3步:使用迭代器,取出集合中的下一个元素
            String next = iter.next();
            System.out.println(next);
            // C#
            // vue
            // PHP
            // GO
        }

三、迭代器的使用注意事项

  1. 当迭代器迭代元素完成后,不能继续next获取元素,否则会报:NoSuchElementException
  2. 当迭代器在使用的过程中,不能使用集合对象直接增删元素。会导致报错。如果要删除可以使用迭代器来删除。

下面为删除元素的方式

// 创建Collection集合,集合中存储String类型元素
Collection<String> coll = new ArrayList<>();
// 存储元素
coll.add("C#");
coll.add("vue");
coll.add("PHP");
coll.add("GO");
// 遍历集合
// 第1步:获取集合的迭代器对象
Iterator<String> iter = coll.iterator();
// 第2步:循环 使用迭代器判断集合中是否有下一个元素
while(iter.hasNext()){
    //String item = iter.next();
    //Object item = iter.next();
    // 第3步:使用迭代器,取出集合中的下一个元素
    String next = iter.next();
    if(next.equals("PHP")){
        iter.remove();
    }
    System.out.println(next);
    // C#
    // vue
    // PHP
    // GO
}
System.out.println(coll);   // [C#, vue, GO]

  

原文地址:https://www.cnblogs.com/xulinjun/p/14770573.html