跳转至

Java foreach 示例详解

简介

在 Java 编程中,foreach 循环(也称为增强型 for 循环)是一种简化集合和数组遍历操作的语法结构。它使得代码更加简洁、易读,减少了传统 for 循环中可能出现的索引错误。本文将深入探讨 Java foreach 循环的基础概念、使用方法、常见实践以及最佳实践,并通过丰富的代码示例帮助读者更好地理解和应用。

目录

  1. 基础概念
  2. 使用方法
    • 遍历数组
    • 遍历集合
  3. 常见实践
    • 计算数组元素之和
    • 查找集合中的特定元素
  4. 最佳实践
    • 只读操作
    • 避免在循环中修改集合
  5. 小结
  6. 参考资料

基础概念

foreach 循环是 Java 5.0 引入的语法糖,它为遍历数组和实现了 Iterable 接口的集合类(如 ArrayListLinkedListHashSet 等)提供了一种更简洁的方式。其基本语法如下:

for (elementType element : collectionOrArray) {
    // 执行操作
}

其中,elementType 是集合或数组中元素的类型,element 是每次迭代中取出的元素,collectionOrArray 是要遍历的集合或数组。

使用方法

遍历数组

下面是一个使用 foreach 循环遍历整数数组并打印每个元素的示例:

public class ArrayForeachExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

遍历集合

ArrayList 为例,以下代码展示了如何使用 foreach 循环遍历并打印列表中的元素:

import java.util.ArrayList;
import java.util.List;

public class ListForeachExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

常见实践

计算数组元素之和

public class ArraySumExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int sum = 0;

        for (int number : numbers) {
            sum += number;
        }

        System.out.println("数组元素之和为: " + sum);
    }
}

查找集合中的特定元素

import java.util.ArrayList;
import java.util.List;

public class FindElementInListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        boolean found = false;
        String target = "Banana";

        for (String fruit : fruits) {
            if (fruit.equals(target)) {
                found = true;
                break;
            }
        }

        if (found) {
            System.out.println("找到了目标元素: " + target);
        } else {
            System.out.println("未找到目标元素: " + target);
        }
    }
}

最佳实践

只读操作

foreach 循环最适合用于只读操作,因为它简化了遍历过程且代码更易读。例如,打印集合或数组中的元素,计算元素的统计信息等。

避免在循环中修改集合

foreach 循环中直接修改集合(如添加或删除元素)可能会导致 ConcurrentModificationException。如果需要在遍历过程中修改集合,建议使用迭代器(Iterator)。以下是一个错误示例:

import java.util.ArrayList;
import java.util.List;

public class BadPracticeExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        // 以下代码会抛出 ConcurrentModificationException
        for (String fruit : fruits) {
            if (fruit.equals("Banana")) {
                fruits.remove(fruit);
            }
        }
    }
}

正确的做法是使用迭代器:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class GoodPracticeExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        Iterator<String> iterator = fruits.iterator();
        while (iterator.hasNext()) {
            String fruit = iterator.next();
            if (fruit.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println(fruits);
    }
}

小结

foreach 循环是 Java 中遍历数组和集合的一种简洁、高效的方式,尤其适用于只读操作。通过本文的介绍,读者应该对 foreach 循环的基础概念、使用方法、常见实践以及最佳实践有了深入的理解。在实际编程中,合理运用 foreach 循环可以提高代码的可读性和可维护性。

参考资料