【Java】四种方法遍历List集合元素(Iterator、ListIterator、普通for、增强for)

【Java】四种方法遍历List集合元素(Iterator、ListIterator、普通for、增强for),第1张

【Java】四种方法遍历List集合元素(Iterator、ListIterator、普通for、增强for)

首先是List集合test2的创建和元素的写入:

	List test2 = new ArrayList<>();
	test2.add("1"); 
    test2.add("2");  
    test2.add("3");

注意,要用多态的方式创建List集合。


方法一.Iteator迭代器

代码:

	Iterator ite = test.iterator();
	while(ite.hasNext())
    {
        String s = ite.next();
        System.out.println(s);
    }

(1)首先创建一个迭代器ite,迭代器依附于具体的集合而存在,使用iterator()方法获取:

Iterator ite = test.iterator();

(2).hasNext()方法:检测迭代指针后方是否还有元素
(3).next()方法:获取当前迭代地址后方值

※值得注意的是,使用Iterator进行迭代遍历时不能对集合内的元素做出添加或者删除的修改 *** 作!!!否则会报错“并发修改异常”。与之相反的,ListIterator可以做到这一点,下面介绍。


方法二.ListIterator迭代器

列表迭代器ListIterator功能更加强大:允许延任意方向遍历列表,在迭代器件也允许修改列表,并获取列表中迭代器的当前位置。
代码:

	ListIterator listite = test2.listIterator();
    while(listite.hasNext())   //正向遍历
    {
        String s = listite.next();
        System.out.println(s);
    } 
   
    while(listite.hasPrevious())  //反向遍历
    {
        String s = listite.previous();
        System.out.println(s);
    }

ListIterator迭代器的方法与Iterator基本一致,重点在add()添加方法在这里被允许了:

	//在指定集合元素后面加上一个元素
    while(listite.hasNext())
    {
        String s = listite.next();
        if(s.equals("2"))
        {
            listite.add("114514");
        }
    }
    System.out.println(test2);

如果这里使用Iterator创建的ite进行元素的添加和删除,会报错。其报错原因的追溯需要查看源码,在此处不做深究。


方法三.普通for循环

代码:

	for(int i=0; i<=test.size()-1; i++)
    {
        System.out.println(test.get(i));    //get(i):返回第i号位置的元素 
    }

(1).size()方法返回集合长度(元素个数)。
(2).get(Index i)方法返回指定第i位置上的元素。


方法四.增强for循环

代码:

	for(String s: test2)  
    {
        System.out.println(s);
    }

(1)形式:for(遍历的元素的数据类型 变量名i: 遍历集合名) {}
(2)增强for循环内部原理是Iterator,所以在遍历时不能修改内部元素。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存