在 Java 中,Collection 接口提供了一种通用的方式来处理一组对象,它定义了一些常用的操作方法,例如添加、删除和遍历元素等。可以使用迭代器(Iterator)来遍历 Collection 中的元素。
以下是如何使用迭代器遍历Collection 的示例代码:
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionIterator { public static void main(String[] args) { // 创建一个 ArrayList 对象 Collection<String> collection = new ArrayList<>(); // 向集合中添加元素 collection.add("Apple"); collection.add("Banana"); collection.add("Orange"); // 获取迭代器 Iterator<String> iterator = collection.iterator(); // 使用迭代器遍历集合元素 while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } } }
需要注意的是,一旦使用迭代器开始遍历集合,就不能通过集合对象直接进行增删操作,否则可能会引发 ConcurrentModificationException 异常。如果需要在遍历过程中对集合进行增删操作,建议使用迭代器的 remove() 方法来进行操作。
增强for循环(Enhanced for Loop),也被称为for-each循环,是 Java 提供的一种简化遍历数组或集合的语法结构。源码其实就是迭代器
以下是使用增强for循环来遍历数组和集合的示例代码:
1.遍历数组
int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); }
2.遍历集合
List<String> fruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); for (String fruit : fruits) { System.out.println(fruit); }
增强for循环的语法结构为
for (元素类型 元素变量 : 遍历对象) { // 执行循环体操作 }
在每次循环迭代时,将遍历对象中的下一个元素赋值给指定的元素变量,然后执行循环体中的操作。对于数组,元素变量的类型必须与数组元素的类型匹配;对于集合,元素变量的类型必须与集合元素的类型匹配。
增强for循环可以更简洁地遍历数组和集合,避免了手动使用索引或迭代器。但是,增强for循环不能进行修改操作,仅适用于读取元素值。
如果需要在遍历过程中修改数组或集合的元素,不适合使用增强for循环。增强for循环只能用于读取元素值,并且不能通过元素变量修改原始数组或集合的元素。
如果要修改数组的元素,可以使用传统的for循环,并通过索引来访问和修改元素的值。示例如下:
int[] numbers = {1, 2, 3, 4, 5}; for (int i = 0; i < numbers.length; i++) { numbers[i] = numbers[i] * 2; } // 打印修改后的数组值 for (int number : numbers) { System.out.println(number); }
如果要修改集合的元素,可以使用传统的for循环结合集合的 set() 方法来进行修改。示例如下:
List<String> fruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); for (int i = 0; i < fruits.size(); i++) { String fruit = fruits.get(i); fruits.set(i, fruit.toUpperCase()); } // 打印修改后的集合元素 for (String fruit : fruits) { System.out.println(fruit); }
add方法可以插入,插入点之后的数据索引+1;