准备工作
我们创建一个示例 String 数组,以便在下面的例子中使用。

String[] fruits = new String[]{"Apple", "Banana", "Cherry", "Date"};
使用 for 循环(最基础、最常用)
这是最基础的方法,可以让你完全控制输出的格式,比如在每个元素后面添加逗号、换行等。
特点:
- 优点:灵活,可自定义输出格式。
- 缺点:代码稍显冗长。
1 经典的 for 循环
System.out.println("使用经典 for 循环输出:");
for (int i = 0; i < fruits.length; i++) {
System.out.println(fruits[i]);
}
输出结果:
使用经典 for 循环输出:
Apple
Banana
Cherry
Date
2 增强的 for 循环 (For-Each Loop)
这是遍历数组(或集合)最简洁、最推荐的方式。

System.out.println("\n使用增强 for 循环 (for-each) 输出:");
for (String fruit : fruits) {
System.out.println(fruit);
}
输出结果:
使用增强 for 循环 (for-each) 输出:
Apple
Banana
Cherry
Date
使用 Arrays.toString()(最简单、最直接)
如果你想把整个数组的内容以 [elem1, elem2, ...] 的形式打印在一行,这是最快的方法。
特点:
- 优点:代码极其简洁,一行搞定。
- 缺点:输出格式是固定的,无法自定义。
import java.util.Arrays; // 别忘了导入 Arrays 类
System.out.println("\n使用 Arrays.toString() 输出:");
System.out.println(Arrays.toString(fruits));
输出结果:

使用 Arrays.toString() 输出:
[Apple, Banana, Cherry, Date]
注意:
Arrays.toString()是java.util.Arrays类中的一个静态方法,用于将数组转换为字符串表示形式,你必须先import java.util.Arrays;才能使用它。
使用 Arrays.asList()(适合需要进一步处理的情况)
这个方法将数组转换为一个 List 集合,然后你可以利用集合的 toString() 方法来打印。
特点:
- 优点:不仅能打印,还能方便地对数组内容进行其他集合操作(如排序、过滤等)。
- 缺点:比
Arrays.toString()稍显复杂,并且对于原始类型数组(如int[])的处理方式与对象数组(如String[])不同。
import java.util.Arrays;
import java.util.List; // 可选,为了代码清晰
System.out.println("\n使用 Arrays.asList() 输出:");
// 将数组转为 List,然后直接打印 List,其 toString() 方法会输出类似格式
System.out.println(Arrays.asList(fruits));
输出结果:
使用 Arrays.asList() 输出:
[Apple, Banana, Cherry, Date]
使用 Java 8 的 Stream API(最现代、最强大)
如果你使用的是 Java 8 或更高版本,Stream API 提供了非常灵活且强大的方式来处理数组(或集合),包括打印。
特点:
- 优点:代码简洁(一行),功能强大,可以轻松结合其他操作(如过滤、映射)。
- 缺点:对于初学者来说,语法可能有点难理解。
1 使用 forEach 打印每个元素
import java.util.Arrays;
System.out.println("\n使用 Java 8 Stream.forEach() 输出(每个元素一行):");
Arrays.stream(fruits).forEach(System.out::println);
输出结果:
使用 Java 8 Stream.forEach() 输出(每个元素一行):
Apple
Banana
Cherry
Date
System.out::println是一个方法引用,等同于fruit -> System.out.println(fruit),表示对流中的每一个元素fruit执行System.out.println(fruit)操作。
2 使用 Collectors.joining 自定义连接格式
如果你想在一行内以特定格式输出(比如用逗号和空格连接),Collectors.joining 非常方便。
import java.util.Arrays;
import java.util.stream.Collectors;
System.out.println("\n使用 Stream.Collectors.joining() 自定义格式输出:");
String result = Arrays.stream(fruits)
.collect(Collectors.joining(", ")); // 用 ", " 连接每个元素
System.out.println(result);
输出结果:
使用 Stream.Collectors.joining() 自定义格式输出:
Apple, Banana, Cherry, Date
你还可以指定前缀和后缀:
String resultWithBrackets = Arrays.stream(fruits)
.collect(Collectors.joining(", ", "[", "]"));
System.out.println(resultWithBrackets);
输出结果:
[Apple, Banana, Cherry, Date]
总结与推荐
| 方法 | 代码示例 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
增强 for 循环 |
for (String s : arr) System.out.println(s); |
需要逐行输出,或对每个元素进行复杂操作时。 | 代码清晰、易读,性能好。 | 无法在一行内控制整体格式。 |
Arrays.toString() |
System.out.println(Arrays.toString(arr)); |
最常用,只需快速查看数组内容在一行内的表示。 | 代码最简单,一行搞定。 | 输出格式固定,无法自定义。 |
Arrays.asList() |
System.out.println(Arrays.asList(arr)); |
需要将数组转为 List 进行后续操作时。 |
功能丰富,可结合集合API。 | 稍显冗余,仅为了打印不如 toString() 直接。 |
| Java 8 Stream | Arrays.stream(arr).forEach(System.out::println); |
使用现代Java特性,需要链式操作(如过滤后打印)时。 | 功能极其强大和灵活,代码简洁。 | 对初学者有一定学习门槛。 |
- 如果只是想快速打印数组内容,首选
Arrays.toString()。 - 如果想逐行处理或打印,推荐使用 增强
for循环。 - 如果你在使用 Java 8+ 并且需要更复杂的处理,Stream API 是你的最佳选择。
