【Java|集合类】list遍历的6种方式

本文主要是总结一下Java集合类中List接口的遍历方式,以下面的list为例,为大家讲解遍历list的6种方式。

java 复制代码
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

文章目录

1.直接输出

由于ArrayList对toString()方法进行了重写,所以可以通过System.out.println()直接输出

java 复制代码
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        System.out.println(list);
    }

2.for循环遍历

ArrayList也可以通过for循环遍历,下标从0开始,ArrayList的大小可以通过size()方法获取到,并且ArrayList提供了get(index)方法用来获取对应下标的元素。

代码实现如下:

java 复制代码
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }

3.foreach遍历

foreach语法格式如下:

java 复制代码
for(元素类型 变量: 数组或集合类){
	对元素进行处理
}

遍历方式如下:

java 复制代码
        for (Integer x: list){
            System.out.print(x+" ");
        }

4.使用Iterator遍历

首先通过调用 List 的 iterator() 方法获取 Iterator 实例,然后使用 Iterator 的 hasNext() 和 next() 方法遍历元素:

java 复制代码
Iterator<Integer> it1 = list.iterator();
        while (it1.hasNext()){
            System.out.print(it1.next()+" ");
        }

5.使用ListIterator遍历

ListIterator 是 Iterator 的子接口,专门用于 List 的遍历。它不仅支持正向遍历,还支持反向遍历,并且可以在遍历过程中进行元素的添加、修改和删除。

与使用ListIterator和Iterator类似,先通过listIterator() 方法获取 ListIterator 对象,使用 hasNext() 和 next() 方法进行正向遍历。

java 复制代码
        ListIterator<Integer> it2 = list.listIterator();
        while (it2.hasNext()){
            System.out.print(it2.next()+" ");
        }

6.使用ListIterator逆序遍历

通过ListIterator逆序遍历时,在调用listIterator() 方法时要传入 list的大小,然后通过使用 hasPrevious() 和 previous() 方法进行反向遍历

java 复制代码
        ListIterator<Integer> it3 = list.listIterator(list.size());
        while (it3.hasPrevious()){
            System.out.print(it3.previous()+" ");
        }
相关推荐
之歆18 分钟前
Spring AI入门到实战到原理源码-MCP
java·人工智能·spring
知乎的哥廷根数学学派29 分钟前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习·矩阵
yangminlei38 分钟前
Spring Boot3集成LiteFlow!轻松实现业务流程编排
java·spring boot·后端
qq_3181215939 分钟前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答
java·spring boot·redis·spring cloud·微服务·面试·内容社区
且去填词40 分钟前
DeepSeek :基于 Schema 推理与自愈机制的智能 ETL
数据仓库·人工智能·python·语言模型·etl·schema·deepseek
J_liaty1 小时前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
人工干智能1 小时前
OpenAI Assistants API 中 client.beta.threads.messages.create方法,兼谈一星*和两星**解包
python·llm
databook1 小时前
当条形图遇上极坐标:径向与圆形条形图的视觉革命
python·数据分析·数据可视化
阿部多瑞 ABU2 小时前
`chenmo` —— 可编程元叙事引擎 V2.3+
linux·人工智能·python·ai写作
acanab2 小时前
VScode python插件
ide·vscode·python