List集合迭代的四种方式

本文介绍了Java中List集合的基本操作及四种不同的迭代方法:传统for循环、增强for循环、Iterator迭代器和ListIterator迭代器,并展示了每种方法的具体使用过程。

人狠话不多

/**
 * @author czy
 * @date 2021/11/04
 **/
public class TestList {
    public static void main(String[] args) {
        //1.创建list接口的多态对象
        List<String> list = new ArrayList<>();
        //2.向创建好list集合添加元素
        list.add("大娃");
        list.add("二娃");
        list.add("三娃");
        list.add("四娃");
        list.add("五娃");
        list.add("六娃");
        list.add("七娃");
        System.out.println(list);
        //3.测试集合的迭代
        /**
         * 四种迭代方式
         * 1.for循环
         * 2.高效for循环
         * 3.iterator
         * 4.listIterator
         * */
        //方式一:因为List集合是有序的,元素有下标,所以可以根据下标进行遍历
        //从哪开始:0  到哪结束:list.size()-1  如何变化++
        for (int i=0;i<list.size()-1;i++){
            System.out.println(list);
        }
        System.out.println("=============================================");
        //方式二:for循环效率低,语法复杂,整点高效的
        //for(本轮遍历到的元素类名 元素名 : 要遍历的内容名){循环体}
        for(String s : list){
            System.out.println(s);
        }
        System.out.println("=============================================");
        //方式三:从父接口中继承过来的迭代器iterator
        //1.获取对应的迭代器对象
        Iterator<String> it = list.iterator();
        //2.通过刚刚获取到的迭代器循环迭代集合中的所有元素
        while (it.hasNext()){ //判断是否仍有下一个元素可以迭代
            System.out.println(it.next()); //打印当前获取到的元素
        }
        System.out.println("=============================================");
        //方式四:listIterator
        /**
         * 属于list接口特有的迭代器
         * Iterator<E>--父接口--hashNext() next()
         * ListIterator<E>--子接口--除了父接口的功能以外
         * 还有自己的特有功能,比如逆序遍历,添加元素等等,但是不常用
         * public interface ListIterator<E>extends Iterator<E>
         */
        ListIterator<String> it2 = list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println(list);
        System.out.println("逆序遍历");
        ListIterator<String> it3 = list.listIterator();
        while (it3.hasNext()){
            System.out.println(it3.next());
            if (!it3.hasNext()){ //直到没有下一个元素可迭代了
                System.out.println("开始逆序迭代");
                while (it3.hasPrevious()){ //判断是否有上一个元素可迭代
                    System.out.println(it3.previous()); //打印获取到的上一个元素
                }
                break; //终止循环
            }
        }
    }
}

得到结果:

[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
=============================================
大娃
二娃
三娃
四娃
五娃
六娃
七娃
=============================================
大娃
二娃
三娃
四娃
五娃
六娃
七娃
=============================================
大娃
二娃
三娃
四娃
五娃
六娃
七娃
[大娃, 二娃, 三娃, 四娃, 五娃, 六娃, 七娃]
逆序遍历
大娃
二娃
三娃
四娃
五娃
六娃
七娃
开始逆序迭代
七娃
六娃
五娃
四娃
三娃
二娃
大娃

over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值