java中的迭代器

首先我们需要迭代器(Iterator)呢?什么是迭代?

  对过程的重复,称为迭代。迭代器是遍历Collection(单列)集合的通用方式,可以在对集合遍历的同时进行添加,删除等

操作。

迭代器的常用方法

  next():返回迭代器的下一个元素对象

  hasNext():如果仍有元素可以迭代,则返回true(简单来说就是判断迭代器中是否有元素)

  注意:列表迭代器是List体系独有的遍历方式,可以在对集合遍历的同时进行添加和删除等操作,

但是必须通过调用列表迭代器的方式来实现

  使用步骤:

    1.根据集合对象获取其对象的迭代器对象

    2.判断迭代器中是否有元素

    3.如果有就获取元素

总结:普通迭代器在遍历集合的同时不能添加或删除元素,否则会报:并发修改异常  

   语法: Iterator 变量名 = 集合名.iterator();

   并发修改异常:在遍历的同时进行删除或者添加

   列表迭代器可以在遍历集合的同时添加或删除元素  : 

    语法: ListIterator 变量 = 集合名.listIterator();

栗子:

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

public class diedaiqi {
    public static void main(String[] args) {
        //创建集合对象
        List list = new ArrayList();
        //添加到集合中
        list.add("23");
        list.add("24");
        list.add("25");
        //根据集合对象获取其中对象的迭代器对象
        Iterator lis = list.iterator();
        while (lis.hasNext()){   //判断迭代器中是否有元素,如果有,则循环
           String i = (String)lis.next();  //获取到的值是object对象,转成字符串类型,因为Object是顶级父类,向下转型
            System.out.println(i);
        }
    }

}

 

栗子二:

  需求:判断集合中如果有字符串b,则在其后便添加一个新的字符串"ftsm"

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class diedaiqi {
    public static void main(String[] args) {
        //创建集合对象
        List list = new ArrayList();
        //添加到集合中
        list.add("a");
        list.add("b");
        list.add("c");
        //1.根据集合对象获取其对象的列表迭代器对象
        ListIterator lit = list.listIterator();  // 列表迭代器
        //2判断迭代器中是否有元素
        while (lit.hasNext()){
            //3.如果有就获取迭代器中的元素
            String i = (String)lit.next();
            System.out.println(i);
            //4.判断迭代器中是否有b
            if("b".equals(i)){    //注意:常量一般在前,变量在后,因为常量在前可以避免空指针异常,(变量为空调用方法就会引空指针异常)
 //               list.add("ftsm");  //这样写不行。会报ConcurrentModificationException异常(并发修改异常)并发修改异常:在遍历的时候同时进行添加或删除
            lit.add("ftsm");
            }

        }
        //打印新的列表集合
        System.out.println(list);
    }

}

 

 

 

  

  

并发修改异常:在遍历的时候同时进行添加或删除
posted @ 2021-01-08 15:37  飞天神猫丶  阅读(450)  评论(0编辑  收藏  举报