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

《Java高级编程:从原理到实战 - 进阶知识篇五》

Java遍历集合的五种常用方法

在Java中,遍历集合有多种方式,下面介绍五种最常用的方法,并分析它们的特点和适用场景。

一. 普通for循环(适用于List)

特点

  • 通过索引访问元素

  • 只适用于实现了RandomAccess接口的List(如ArrayList)

  • 不适用于Set和Map

List<String> list = Arrays.asList("A", "B", "C");
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}

二. 增强for循环(foreach)

特点

  • 语法简洁

  • 适用于所有Collection类型

  • 底层使用迭代器实现

  • 遍历过程中不能修改集合

List<String> list = Arrays.asList("A", "B", "C");
for (String item : list) {System.out.println(item);
}// 同样适用于Set
Set<String> set = new HashSet<>(list);
for (String item : set) {System.out.println(item);
}

 三. 迭代器(Iterator)

特点

  • 最原始的遍历方式

  • 可以在遍历时安全删除元素

  • 适用于所有Collection类型

List<String> list = Arrays.asList("A", "B", "C");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {String item = iterator.next();System.out.println(item);// 安全删除当前元素// iterator.remove();
}

 四. Java 8 forEach + Lambda

特点

  • 代码简洁

  • 支持Lambda表达式

  • 不能使用break/continue控制流程

List<String> list = Arrays.asList("A", "B", "C");
list.forEach(item -> System.out.println(item));// 或者使用方法引用
list.forEach(System.out::println);// Map的遍历
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.forEach((k, v) -> System.out.println(k + ":" + v));

五. Stream API(Java 8+)

特点

  • 支持函数式编程

  • 可以进行链式操作(过滤、映射等)

  • 并行流提高性能

List<String> list = Arrays.asList("A", "B", "C");
list.stream().forEach(System.out::println);// 并行处理
list.parallelStream().forEach(System.out::println);// 带过滤条件的遍历
list.stream().filter(s -> s.startsWith("A")).forEach(System.out::println);

相关文章:

  • Qt中QVector的实现与简化
  • 统计学中的p值是什么?怎么使用?
  • TS 枚举类型
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.2 数据类型转换(CAST函数/自定义函数)
  • WSL在D盘安装Ubuntu
  • 8.5 从零到生产:Docker+K8s+CI/CD全链路部署实战手册
  • 【SpringAI+阿里云百炼】AI对话4个Demo
  • 40. 组合总和 II
  • 洛谷 P2866 [USACO06NOV] Bad Hair Day S
  • Untiy基础学习(五)Inspector窗口中可编辑的变量
  • Linux之用户管理
  • SALOME源码分析: SolverLab
  • 大模型(LLMs)RAG 版面分析——文本分块面
  • Rust的安全卫生原则
  • Java二维码学习
  • Spark,Idea中编写Spark程序 2
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 4 |IMU 死算与校正:惯性导航在资源受限环境的落地
  • 在CentOS环境中安装MySQL数据库保姆级教程
  • 基于 PyQt 的YOLO目标检测可视化界面+ nuitka 打包
  • 工程师 - 汽车分类
  • 全国铁路旅客发送量连续3天同比增幅超10%,今日预计发送1800万人次
  • 艺术开卷|韩羽读齐白石:妙在似与不似之间
  • 印尼巴厘岛多地停电,疑似海底电缆发生故障
  • 巴菲特股东大会前瞻:执掌伯克希尔60年,巨轮将驶向何方
  • 陈颖已任上海黄浦区委常委、统战部部长
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高