您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

java日常开发必备:list的四种遍历

时间:2022-08-10 09:37:29  来源:博客园  作者:Java小王

在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式。这里以JAVA.util.ArrayList为例来演示。

这里有一个最简单的测试类,里边有一个mAIn方法

package com.my.template.service;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * @date 2022/8/2 18:12 */public class TestList {    public static void main(String[] args) {        List<String> list=new ArrayList<String>();        list.add("hello");        list.add("ArrayList");        list.add("!");        simpleTraverse(list);    }}

1.最简单的方式

这种方式是最简单的,也是最容易想到的。

/**     * 最简单的遍历方式     * @param list     */    public static void simpleTraverse(List<String> list){        for(int i=0;i<list.size();i++){            System.out.println(list.get(i));        }    }

这种方法就是把List当作一个数组,从数组的第一个位置开始循环到数组的最后位置,有以下几点需要注意,

  1. i的初始值为0,因为数组的第一个下标为0;
  2. 临界值为list的长度-1,也就是“i<list.size()”或“i<=list.size()-1”,这两种均可;

打印结果为:

helloArrayList!

这种方式初学者都会的遍历方式,下面看高级点。

2.foreach的遍历方式

上面的遍历方式,下面来看下高级的遍历方法,

/**     * 进阶版的遍历方式,foreach     * @param list     */    public static void forEachTraverse(List<String> list){        for (String str:list) {            System.out.println(str);        }    }

这种方式是利用foreach的用法,很多人不清楚foreach的底层是什么样子的,在idea中找到class文件,看下反编译过来的代码,

 

从反编译过滤的代码可以看到foreach底层其实是使用的迭代器的方式,也就是下面要说的遍历方式。

3.迭代器的遍历方式

List可以使用迭代器的方式进行遍历是有原因的,因为在list的实现类中均实现了Iterator接口。看下ArrayList中对Iterator接口的实现,

 

在ArrayList中有静态内部类Itr,该类实现了Iterator接口。同时ArrayList提供了iterator()方法,

 

这样就可以使用迭代器了。看下迭代器模式的遍历方式,

/**     * 迭代器的遍历方式     * @param list     */    public static void iteratorTraverse(List<String> list){        Iterator<String> iterator=list.iterator();        while(iterator.hasNext()){            System.out.println(iterator.next());        }    }

看下是不是也是很简单。下面看最后一种遍历方式,流式遍历。

4.流式的遍历方式

所谓流式的遍历,是java8提供的最新的方式,

/**     * 流式遍历     * @param list     */    public static void streamTraverse(List<String> list){        list.stream().forEach(str->{            System.out.println(str);        });    }

是不是很简单,对于stream()的API后边会专门分析,这里知道这种遍历方式即可,有兴趣的可以先看看该种方式的实现。

总结,本文主要梳理里在日常的开发过程中对List的遍历方式,没有最好的方式只有适合自己的。

原文链接:
https://www.cnblogs.com/teach/p/16551297.html



Tags:遍历   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Python编程必备:掌握列表遍历的六种神级技巧!
遍历列表是Python中最常见的任务之一,因为列表是一种非常常用的数据结构,它用于存储一组项目。在编程中,经常需要对这些项目进行操作,例如查找特定元素,修改元素值,或者仅仅是为了...【详细内容】
2023-11-06  Search: 遍历  点击:(255)  评论:(0)  加入收藏
JS中常用的6种数组遍历方法
在前端开发当中,我们通常要对后端返回的数据进行一些处理再渲染到页面,而其中常用的就是数组的不同遍历方法,因此熟练掌握这些方法是非常有必要的,而对于初学者来说,这些方法不太...【详细内容】
2023-06-26  Search: 遍历  点击:(355)  评论:(0)  加入收藏
Java遍历一个 List 有哪些方式?每种的实现原理以及哪种最高效?
在Java中,遍历一个List大致有以下几种方式: 使用普通的for循环:List<String> list = Arrays.asList("A", "B", "C");for (int i = 0; i < list.size(); i++) { String eleme...【详细内容】
2023-06-25  Search: 遍历  点击:(70)  评论:(0)  加入收藏
前端开发map和foreach区别,map遍历方式用法介绍
前端开发中的map和forEach都是JavaScript中常用的数组遍历方法,它们的区别主要在于返回值和对原数组的影响。具体介绍如下:1. map方法介绍map方法会遍历数组中的每一个元素,执...【详细内容】
2023-06-13  Search: 遍历  点击:(315)  评论:(0)  加入收藏
数据结构与算法:图的遍历—深度优先搜索
一、图的遍历遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次。前面已经讲过了二叉树的节点遍历。类似的,图的遍历是指,从给...【详细内容】
2023-04-14  Search: 遍历  点击:(217)  评论:(0)  加入收藏
24个JavaScript循环遍历方法,你都知道吗?
JavaScript 提供了很多循环遍历方法,下面就来详细看看这些方法都是怎么用的以及使用时的注意事项:一、数组遍历方法1. forEach()forEach 方法用于调用数组的每个元素,并将元素...【详细内容】
2023-02-01  Search: 遍历  点击:(271)  评论:(0)  加入收藏
C++遍历文件夹筛选出指定格式的文件或具有特定名称的文件
本文介绍基于C++语言,遍历文件夹中的全部文件,并从中获取指定类型的文件的方法。 首先,我们来明确一下本文所需实现的需求。现在有一个文件夹,其中包含了很多文件,如下图所示;我...【详细内容】
2022-11-16  Search: 遍历  点击:(425)  评论:(0)  加入收藏
java日常开发必备:list的四种遍历
在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式。这里以java.util.ArrayList为例来演示。这里有一个最简单的测试...【详细内容】
2022-08-10  Search: 遍历  点击:(429)  评论:(0)  加入收藏
Java小技巧:巧用函数方法实现二维数组遍历
对于数组遍历,基本上每个开发者都写过,遍历本身没什么好说的,但是当我们在遍历的过程中,有一些复杂的业务逻辑时,将会发现代码的层级会逐渐加深如一个简单的case,将一个二维数组中...【详细内容】
2022-08-07  Search: 遍历  点击:(354)  评论:(0)  加入收藏
爬虫利器 Beautiful Soup 之遍历文档
Beautiful Soup 简介Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它提供了一些简单的操作方式来帮助你处理文档导航,查找,修改文档等繁琐的工作。因...【详细内容】
2022-07-04  Search: 遍历  点击:(314)  评论:(0)  加入收藏
▌简易百科推荐
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  vivo互联网技术    Tags:Java 8   点击:(18)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20    51CTO  Tags:Java代码   点击:(25)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18    51CTO  Tags:Java   点击:(34)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  大雷家吃饭    Tags:Java   点击:(63)  评论:(0)  加入收藏
在项目中如何避免和解决Java内存泄漏问题
在Java中,内存泄漏通常指的是程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被垃圾回收器回收,最终导致内存占用不断增加,进而影响程序的性...【详细内容】
2024-02-01  编程技术汇  今日头条  Tags:Java   点击:(78)  评论:(0)  加入收藏
Java中的缓存技术及其使用场景
Java中的缓存技术是一种优化手段,用于提高应用程序的性能和响应速度。缓存技术通过将计算结果或者经常访问的数据存储在快速访问的存储介质中,以便下次需要时可以更快地获取。...【详细内容】
2024-01-30  编程技术汇    Tags:Java   点击:(78)  评论:(0)  加入收藏
JDK17 与 JDK11 特性差异浅谈
从 JDK11 到 JDK17 ,Java 的发展经历了一系列重要的里程碑。其中最重要的是 JDK17 的发布,这是一个长期支持(LTS)版本,它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性...【详细内容】
2024-01-26  政采云技术  51CTO  Tags:JDK17   点击:(100)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  大雷家吃饭    Tags:Java   点击:(111)  评论:(0)  加入收藏
这篇文章彻底让你了解Java与RPA
前段时间更新系统的时候,发现多了一个名为Power Automate的应用,打开了解后发现是一个自动化应用,根据其描述,可以自动执行所有日常任务,说的还是比较夸张,简单用了下,对于office、...【详细内容】
2024-01-17  Java技术指北  微信公众号  Tags:Java   点击:(108)  评论:(0)  加入收藏
Java 在 2023 年仍然流行的 25 个原因
译者 | 刘汪洋审校 | 重楼学习 Java 的过程中,我意识到在 90 年代末 OOP 正值鼎盛时期,Java 作为能够真正实现这些概念的语言显得尤为突出(尽管我此前学过 C++,但相比 Java 影响...【详细内容】
2024-01-10  刘汪洋  51CTO  Tags:Java   点击:(82)  评论:(0)  加入收藏
站内最新
站内热门
站内头条