如何在 Java 中循环 ArrayList

简介: 【8月更文挑战第23天】

简介

ArrayList 是 Java 中一个常用的集合框架类,用于存储元素的列表。它提供了多种方法来遍历和迭代其元素。

使用 for-each 循环

for-each 循环(也称为增强型 for 循环)是一种简单而简洁的方法来遍历 ArrayList 中的每个元素。它的语法如下:

for (元素类型 变量 : 集合) {
   
    // 代码块
}

示例:

ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");

for (String name : names) {
   
    System.out.println(name); // 输出:John、Mary、Bob
}

使用迭代器

迭代器是另一种遍历 ArrayList 中元素的方法。它提供了更多的控制和灵活性。要获取迭代器,可以使用以下方法:

Iterator<元素类型> iterator = 集合.iterator();

然后,可以使用以下方法遍历迭代器中的元素:

  • hasNext():检查迭代器中是否还有元素。
  • next():返回迭代器中的下一个元素。
  • remove():从集合中删除当前元素(可选)。

示例:

ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");

Iterator<String> iterator = names.iterator();

while (iterator.hasNext()) {
   
    String name = iterator.next();
    System.out.println(name); // 输出:John、Mary、Bob
}

使用 lambda 表达式

Java 8 引入了 lambda 表达式,提供了一种更简洁的方式来遍历 ArrayList。lambda 表达式可以与 forEach() 方法结合使用,如下所示:

ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");

names.forEach(name -> System.out.println(name)); // 输出:John、Mary、Bob

并发修改

需要注意的是,在遍历 ArrayList 时对其进行修改可能会导致意外行为。例如,在使用 for-each 循环时,如果从 ArrayList 中删除元素,则会抛出 ConcurrentModificationException 异常。要避免此问题,可以使用迭代器或在遍历之前复制 ArrayList。

总结

有几种方法可以在 Java 中循环 ArrayList:for-each 循环、迭代器和 lambda 表达式。选择最合适的方法取决于所需的灵活性、控制和并发修改处理。

目录
相关文章
|
8天前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
12天前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
Java ArrayList扩容的原理
|
16天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
24天前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
36 6
|
27天前
|
安全 Java 程序员
Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?
本文介绍了 Java 中常用的两个集合类 ArrayList 和 LinkedList,分析了它们的底层实现、特点及适用场景。ArrayList 基于数组,适合频繁查询;LinkedList 基于链表,适合频繁增删。文章还讨论了如何实现线程安全,推荐使用 CopyOnWriteArrayList 来提升性能。希望帮助读者选择合适的数据结构,写出更高效的代码。
50 3
|
1月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 1
|
1月前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
12 1
|
2月前
|
Java
java基础(2)循环语句for、while、do...while
本文介绍了Java中的基础循环语句,包括for循环、while循环和do...while循环。文章通过示例代码展示了for循环的基本结构和用法,while循环的先判断后执行逻辑,以及do...while循环的先执行后判断逻辑。这些循环语句在Java编程中非常常用,用于执行重复的任务。
49 4
java基础(2)循环语句for、while、do...while
|
2月前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
27 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
2月前
|
Java
Java循环
Java循环
42 6