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

本文详细介绍了Java中List集合的四种遍历方法:Iterator迭代器、ListIterator迭代器、普通for循环及增强for循环,并对比了它们的特点与适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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


方法一.Iteator迭代器

代码:

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

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

Iterator<String> ite = test.iterator();

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

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


方法二.ListIterator迭代器

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

	ListIterator<String> 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,所以在遍历时不能修改内部元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值