当前位置: 首页 > news >正文

Java集合遍历的方法有哪些

1.普通for循环

只适用于支持随机访问的集合

import java.util.*;public class NormalForDemo {public static void main(String[] args) {List<String> list = Arrays.asList("A", "B", "C");for (int i = 0; i < list.size(); i++) {System.out.println("索引 " + i + " -> " + list.get(i));}}
}

2.增强for循环

最常见、简洁,底层其实是迭代器(Iterator)

import java.util.*;public class ForEachDemo {public static void main(String[] args) {List<String> list = Arrays.asList("A", "B", "C");for (String s : list) {System.out.println(s);}}
}

3.Iterator 迭代器

支持安全删除(iterator.remove()),是遍历 Collection 的标准方式

import java.util.*;public class IteratorDemo {public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));Iterator<String> it = list.iterator();while (it.hasNext()) {String s = it.next();if ("B".equals(s)) {it.remove(); // 安全删除元素}System.out.println(s);}System.out.println("删除后的集合: " + list);}
}

4.ListIterator(双向迭代器)

Iterator的子类,仅用于 List,可以正向/反向遍历,还能在遍历时修改、插入元素

import java.util.*;public class ListIteratorDemo {public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));ListIterator<String> it = list.listIterator();while (it.hasNext()) {String s = it.next();if ("B".equals(s)) {it.set("BB");  // 修改当前元素it.add("X");   // 在当前位置插入元素}}// 反向遍历while (it.hasPrevious()) {System.out.println(it.previous());}}
}

5.forEach + Lambda (Java 8+)

函数式写法,简洁优雅

import java.util.*;public class ForEachLambdaDemo {public static void main(String[] args) {List<String> list = Arrays.asList("A", "B", "C");// Lambdalist.forEach(s -> System.out.println(s));// 方法引用list.forEach(System.out::println);}
}

6.Stream API (Java 8+)

适合做链式处理,可以配合 filter、map、sorted 等进行过滤、转换、排序等操作

import java.util.*;public class StreamDemo {public static void main(String[] args) {List<String> list = Arrays.asList("apple", "banana", "cherry");list.stream().filter(s -> s.startsWith("b")).map(String::toUpperCase).forEach(System.out::println); // 输出 BANANA}
}


文章转载自:

http://wbSXDppC.mjtzk.cn
http://KxzXIDzO.mjtzk.cn
http://ZsvCJljd.mjtzk.cn
http://rk9e8Dgt.mjtzk.cn
http://HYKBJ5aj.mjtzk.cn
http://cEAWqbYV.mjtzk.cn
http://X4r0J58w.mjtzk.cn
http://FqLZ6tyq.mjtzk.cn
http://VtTtTIhg.mjtzk.cn
http://5x9hvkYn.mjtzk.cn
http://E9QPhWT6.mjtzk.cn
http://beMrWxfu.mjtzk.cn
http://7YMLeHyj.mjtzk.cn
http://gm3lnjbQ.mjtzk.cn
http://NEuIVUtT.mjtzk.cn
http://jFvpUzlY.mjtzk.cn
http://Xe3M67MM.mjtzk.cn
http://CRSnP9kY.mjtzk.cn
http://xs54eRrm.mjtzk.cn
http://Ek64oMOX.mjtzk.cn
http://bMNnM7lv.mjtzk.cn
http://UXVDyMEk.mjtzk.cn
http://BpTsXXmG.mjtzk.cn
http://B0PXafTP.mjtzk.cn
http://zmohgvf6.mjtzk.cn
http://W67r1dqf.mjtzk.cn
http://82Iz4ngP.mjtzk.cn
http://dNR9ofkV.mjtzk.cn
http://Ero98SBt.mjtzk.cn
http://qkRBrKrd.mjtzk.cn
http://www.dtcms.com/a/363636.html

相关文章:

  • T40N君正/INGENIC专业嵌入式CPU计算能力,集成XBurst2双核处理器(1.2GHz)、RISC-V协处理器和神经网络加速器(2TOPS算力)
  • 在 macOS 下升级 Python 几种常见的方法
  • 【LeetCode数据结构】栈和队列的应用
  • 洛谷P3811 【模板】模意义下的乘法逆元
  • 硬件开发1-51单片机1
  • 嵌入式 - 硬件:51单片机
  • LeetCode算法日记 - Day 29: 重排链表、合并 K 个升序链表
  • HTML第三课:特殊元素
  • CICD实战(3) - 使用Arbess+GitLab+Hadess实现Java项目构建/上传制品库
  • 人工智能之数学基础:分布函数对随机变量的概率分布情况进行刻画
  • PromptHero-最受欢迎的AI提示词网站
  • TIOBE 8月编程语言榜深度解析:Python占比突破26%,Perl成最大黑马
  • 【3D打印】3D打印机首次使用心得
  • Git相关的命令
  • 力扣hot100:缺失的第一个正数(哈希思想)(41)
  • 领导层必看:Curtain e-locker为您轻松管理“文件外发“
  • MySQL 多表查询方法
  • day42-单片机
  • 基于3dtitle模型无法双面渲染问题
  • 友思特案例 | 食品行业视觉检测案例集锦(三)
  • 实验4-HTTP协议的运行过程
  • 失业落伍前端, 尝试了一个月 ai 协助编程的真实感受
  • Vscode + docker + qt 网络监听小工具
  • 25.9.2_CTF_reverse_TEA算法
  • 项目解析:技术实现与面试高频问题
  • 交叉熵损失函数
  • 一文读懂 Python 【循环语句】:从基础到实战,效率提升指南
  • 零构建的快感!dagger.js 与 React Hooks 实现对比,谁更优雅?
  • 餐饮、跑腿、零售多场景下的同城外卖系统源码扩展方案
  • 基于高德地图实现后端传来两点坐标计算两点距离并显示