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

        List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);

文章目录

  • 1.直接输出
  • 2.for循环遍历
  • 3.foreach遍历
  • 4.使用Iterator遍历
  • 5.使用ListIterator遍历
  • 6.使用ListIterator逆序遍历

1.直接输出

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

    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)方法用来获取对应下标的元素。
代码实现如下:

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

3.foreach遍历

foreach语法格式如下:

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

遍历方式如下:

        for (Integer x: list){System.out.print(x+" ");}

4.使用Iterator遍历

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

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

5.使用ListIterator遍历

ListIterator 是 Iterator 的子接口,专门用于 List 的遍历。它不仅支持正向遍历,还支持反向遍历,并且可以在遍历过程中进行元素的添加、修改和删除。
与使用ListIterator和Iterator类似,先通过listIterator() 方法获取 ListIterator 对象,使用 hasNext() 和 next() 方法进行正向遍历。

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

6.使用ListIterator逆序遍历

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

        ListIterator<Integer> it3 = list.listIterator(list.size());while (it3.hasPrevious()){System.out.print(it3.previous()+" ");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913155.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913155.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913155.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博弈论基础-笔记

取石子1 性质一&#xff1a;12345可以确定先手赢&#xff0c;6不论取那个质数都输&#xff0c;789 10 11可以分别取12345变成6 性质二&#xff1a;6的倍数一定不能取出之后还是6的倍数&#xff08;不能转换输态&#xff09; #include <bits/stdc.h> using namespace st…

多任务学习-ESMM

简介 ESMM&#xff08;Entire Space Multi-task Model&#xff09;是2018年阿里巴巴提出的多任务学习模型。基于共享的特征表达和在用户整个行为序列空间上的特征提取实现对CTR、CVR的联合训练 解决的问题 SSB&#xff08;sample selection bias&#xff09; 如下图1所示&am…

K8S 集群配置踩坑记录

系统版本&#xff1a;Ubuntu 22.04.5-live-server-amd64 K8S 版本&#xff1a;v1.28.2 Containerd 版本&#xff1a; 1.7.27 kubelet logs kuberuntime_sandbox.go:72] "Failed to create sandbox for pod" err"rpc error: code Unknown desc failed to cre…

超滤管使用与操作流程-实验操作013

超滤管使用与操作流程 超滤管&#xff08;或蛋白浓缩管&#xff09;是一种重要的实验设备&#xff0c;广泛应用于分离与纯化大分子物质&#xff0c;尤其是蛋白质、多糖和核酸等。其工作原理依赖于超滤技术&#xff0c;通过半透膜对分子进行筛分&#xff0c;精准地将大分子物质…

GitHub已破4.5w star,从“零样本”到“少样本”TTS,5秒克隆声音,冲击传统录音棚!

嗨&#xff0c;我是小华同学&#xff0c;专注解锁高效工作与前沿AI工具&#xff01;每日精选开源技术、实战技巧&#xff0c;助你省时50%、领先他人一步。&#x1f449;免费订阅&#xff0c;与10万技术人共享升级秘籍&#xff01;你是否为录音成本高、声音不灵活、又想为多语言…

【中文核心期刊推荐】《遥感信息》

《遥感信息》&#xff08;CN&#xff1a;11-5443/P&#xff09;是一份具有较高学术价值的双月刊期刊&#xff0c;自创刊以来&#xff0c;凭借新颖的选题和广泛的报道范围&#xff0c;兼顾了大众服务和理论深度&#xff0c;深受学术界和广大读者的关注与好评。 该期刊创办于1986…

uniapp微信小程序css中background-image失效问题

项目场景&#xff1a;提示&#xff1a;这里简述项目相关背景&#xff1a;在用uniapp做微信小程序的时候&#xff0c;需要一张背景图&#xff0c;用的是当时做app的时候的框架&#xff0c;但是&#xff0c;在class的样式中background-image失效了&#xff0c;查了后才知道&#…

iOS App无源码安全加固实战:如何对成品IPA实现结构混淆与资源保护

在很多iOS项目交付中&#xff0c;开发者或甲方并不总能拿到应用源码。例如外包项目交付成品包、历史项目维护、或者仅负责分发渠道的中间商&#xff0c;都需要在拿到成品ipa文件后对其进行安全加固。然而传统的源码级混淆方法&#xff08;如LLVM Obfuscator、Swift Obfuscator&…

Java 中的 ArrayList 和 LinkedList 区别详解(源码级理解)

&#x1f680; Java 中的 ArrayList 和 LinkedList 区别详解&#xff08;源码级理解&#xff09; 在日常 Java 开发中&#xff0c;ArrayList 和 LinkedList 是我们经常用到的两种 List 实现。虽然它们都实现了 List 接口&#xff0c;但在底层结构、访问效率、插入/删除操作、扩…

使用OpenLayers调用geoserver发布的wms服务

1.前端vue3调用代码 <template><div><div ref"mapContainer" class"map"></div></div> </template><script setup lang"ts"> import { ref, onMounted } from "vue"; import Map from &quo…

二十七、【测试执行篇】测试计划:前端一键触发测试 实时状态追踪

二十七、【测试执行篇】测试计划:前端一键触发测试 & 实时状态追踪 前言准备工作第一部分:后端 API 确认第二部分:前端实现 - 触发执行与状态轮询第三部分:后端 API 增强第四部分:全面测试总结前言 一个完整的自动化测试流程,从测试用例的创建到报告的生成,最终都需…

60天python训练营打卡day52

学习目标&#xff1a; 60天python训练营打卡 学习内容&#xff1a; DAY 52 神经网络调参指南 知识点回顾&#xff1a; 1.随机种子 2.内参的初始化 3.神经网络调参指南 a.参数的分类 b.调参的顺序 c.各部分参数的调整心得 作业&#xff1a;对于day’41的简单cnn&#xff0c;看…

【Modern C++ Part3】Understand-decltype

条款三&#xff1a;理解decltype decltype是一个怪异的发明。给定一个变量名或者表达式&#xff0c;decltype会告诉你这个变量名或表达式的类型。decltype的返回的类型往往也是你期望的。然而有时候&#xff0c;它提供的结果会使开发者极度抓狂而不得参考其他文献或者在线的Q&…

前端批量请求场景

文章目录 一、批量请求1、Promise.allSettled2、返回值穿透 二、案例1、 批量任务2、缓存优化3、另一种实现方式 一般时候前端都是简单的查询任务&#xff0c;复杂的数据获取都是后台处理好再返回&#xff0c;如果遇到接口流程化处理、数据组装&#xff0c;可以参考一下。 一、…

芊芊妙音:智能变声,玩转声音魔法

在当今丰富多彩的社交和娱乐环境中&#xff0c;声音的魅力正逐渐被更多人发现和利用。无论是线上社交、短视频创作还是直播互动&#xff0c;一个独特而有趣的声音总能让人眼前一亮&#xff0c;甚至成为个人风格的一部分。《芊芊妙音》正是这样一款能够帮助用户轻松实现声音变换…

安防监控视频汇聚平台EasyCVR v3.7.2版云端录像无法在web端播放的原因排查和解决方法

有用户反馈&#xff0c;在使用EasyCVR视频汇聚平台时&#xff0c;发现云端录像无法在Web页面正常播放。为帮助大家高效解决类似困扰&#xff0c;本文将详细剖析排查思路与解决方案。 用户软件版本信息&#xff1a; 问题排查与解决步骤&#xff1a; 1&#xff09;问题复现验证…

vxe-upload vue 实现附件上传、手动批量上传附件的方式

vxe-upload vue 实现附件上传、手动批量上传附件的方式 查看官网&#xff1a;https://vxeui.com 安装 npm install vxe-pc-ui4.6.47// ... import VxeUIAll from vxe-pc-ui import vxe-pc-ui/lib/style.css // ...createApp(App).use(VxeUIAll).mount(#app) // ...上传附件支…

leaflet【十一】地图瓦片路径可视化

前言 在开发调试过程当中&#xff0c;如果引入的是公司内部的Gis地图信息或者一些第三方定制来的Gis地图数据&#xff0c;当某一些地图块数据缺失的时候&#xff0c;要打开F12去一个个找那些链接&#xff08;去找对应的xy与layer&#xff09;失效、那么你可能需要使用以下插件…

ES6从入门到精通:模块化

ES6 模块化基础概念ES6 模块化是 JavaScript 官方标准&#xff0c;通过 import 和 export 语法实现代码拆分与复用。模块化特点包括&#xff1a;每个文件是一个独立模块&#xff0c;作用域隔离。支持静态分析&#xff0c;依赖关系在编译时确定。输出的是值的引用&#xff08;动…

stm32 USART串口协议与外设——江协教程踩坑经验分享

江协stm32学习&#xff1a;9-1~9-3 USART串口协议与外设 一、串口通信基础知识 1、通信类型&#xff1a; 全双工通信&#xff1a;通信双方能够同时进行双向通信。一般有两根通信线&#xff0c;如USART中的TX&#xff08;发送&#xff09;和RX&#xff08;接收&#xff09;线&am…