杰瑞科技汇

arraylist输出 java

创建一个示例 ArrayList

我们创建一个 ArrayList 并填充一些数据,以便在下面的例子中使用。

arraylist输出 java-图1
(图片来源网络,侵删)
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayListOutputExample {
    public static void main(String[] args) {
        // 创建一个存储 String 类型的 ArrayList
        ArrayList<String> fruits = new ArrayList<>(Arrays.asList("苹果", "香蕉", "橙子", "葡萄"));
        // 创建一个存储 Integer 类型的 ArrayList
        ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(10, 20, 30, 40, 50));
        // 后续的例子将使用这两个 ArrayList
    }
}

使用传统的 for 循环(最基础)

这是最基础、最通用的方法,适用于任何版本的 Java,通过索引遍历 ArrayList 中的每一个元素。

特点

  • 代码冗长。
  • 需要手动处理索引。
  • 优点**:可以在循环中方便地获取元素的索引(i)。

代码示例

System.out.println("--- 方法一:使用传统的 for 循环 ---");
// 输出 String 类型的 ArrayList
System.out.println("水果列表:");
for (int i = 0; i < fruits.size(); i++) {
    System.out.println("索引 " + i + ": " + fruits.get(i));
}
// 输出 Integer 类型的 ArrayList
System.out.println("\n数字列表:");
for (int i = 0; i < numbers.size(); i++) {
    System.out.println("索引 " + i + ": " + numbers.get(i));
}

输出结果

arraylist输出 java-图2
(图片来源网络,侵删)
--- 方法一:使用传统的 for 循环 ---
水果列表:
索引 0: 苹果
索引 1: 香蕉
索引 2: 橙子
索引 3: 葡萄
数字列表:
索引 0: 10
索引 1: 20
索引 2: 30
索引 3: 40
索引 4: 50

使用增强 for 循环 (for-each loop)(推荐)

这是 Java 5 引入的特性,是遍历集合(包括 ArrayList)最推荐、最简洁的方式。

特点

  • 代码简洁,可读性高。
  • 无需关心索引,直接获取集合中的元素。
  • 缺点:无法在循环中获取元素的索引。

代码示例

System.out.println("\n--- 方法二:使用增强 for 循环 (for-each) ---");
// 输出 String 类型的 ArrayList
System.out.println("水果列表:");
for (String fruit : fruits) {
    System.out.println(fruit);
}
// 输出 Integer 类型的 ArrayList
System.out.println("\n数字列表:");
for (Integer number : numbers) {
    System.out.println(number);
}

输出结果

arraylist输出 java-图3
(图片来源网络,侵删)
--- 方法二:使用增强 for 循环 (for-each) ---
水果列表:
苹果
香蕉
橙子
葡萄
数字列表:
10
20
30
40
50

使用 Java 8 的 Stream API(现代、功能强大)

这是 Java 8 引入的现代方法,非常灵活,不仅可以用于输出,还可以进行过滤、排序、转换等复杂的操作。

特点

  • 代码非常简洁,一行即可完成输出。
  • 函数式编程风格,易于与其他 Stream 操作链式调用。
  • 缺点:对于简单的遍历,可能显得有些“杀鸡用牛刀”。

代码示例

System.out.println("\n--- 方法三:使用 Java 8 Stream API ---");
// 输出 String 类型的 ArrayList
System.out.println("水果列表:");
fruits.stream().forEach(System.out::println);
// 输出 Integer 类型的 ArrayList
System.out.println("\n数字列表:");
numbers.stream().forEach(System.out::println);

System.out::println 是一个方法引用,等同于 element -> System.out.println(element),表示对流中的每个元素执行 println 方法。

输出结果

--- 方法三:使用 Java 8 Stream API ---
水果列表:
苹果
香蕉
橙子
葡萄
数字列表:
10
20
30
40
50

使用 toString() 方法(快速调试)

ArrayList 类重写了 Object 类的 toString() 方法,它会返回一个包含所有元素(用逗号和空格分隔)的字符串。

特点

  • 极其方便,一行代码即可打印整个列表的内容。
  • 主要用途:用于调试(System.out.println(list)),不适合在生产代码中格式化输出。

代码示例

System.out.println("\n--- 方法四:使用 toString() 方法 ---");
// 直接打印 ArrayList
System.out.println("水果列表: " + fruits);
System.out.println("数字列表: " + numbers);

输出结果

--- 方法四:使用 toString() 方法 ---
水果列表: [苹果, 香蕉, 橙子, 葡萄]
数字列表: [10, 20, 30, 40, 50]

使用 Arrays.toString()(不推荐,但需注意)

如果你有一个 ArrayList,并且错误地尝试使用 Arrays.toString(),你得到的不是列表的内容,而是列表的内存地址表示。

特点

  • 错误用法Arrays.toString() 是为数组设计的,不适用于 ArrayList
  • 结果:输出的是 ArrayList 对象的字符串表示,而不是其包含的元素。

代码示例(错误示范)

import java.util.Arrays;
// ... 在 main 方法中 ...
System.out.println("\n--- 方法五:Arrays.toString() (错误用法) ---");
// 错误!这不会输出列表内容
System.out.println("错误的水果列表输出: " + Arrays.toString(fruits)); 

输出结果

--- 方法五:Arrays.toString() (错误用法) ---
错误的水果列表输出: [Ljava.lang.String;@15db9742  // 这不是我们想要的

正确做法:直接使用 System.out.println(list),它会自动调用 ArrayList 自己的 toString() 方法(如方法四所示)。


总结与推荐

方法 优点 缺点 适用场景
传统 for 循环 可获取索引,兼容所有 Java 版本 代码冗长 需要元素索引的遍历
增强 for 循环 代码简洁,可读性高 无法获取索引 绝大多数遍历场景,强烈推荐
Stream API 极其简洁,功能强大 对简单遍历可能“过度设计” 需要链式操作(如过滤、映射)或函数式风格
toString() 最快,最方便 输出格式固定([elem1, elem2] 快速调试,临时查看内容

推荐选择

  • 日常开发:优先使用 增强 for 循环,它是最平衡、最常用的选择。
  • 快速调试:直接在 System.out.println() 中传入 ArrayList 变量,利用其自带的 toString() 方法。
  • 复杂操作:如果遍历之后还需要进行其他处理(如筛选、转换),使用 Stream API 会更优雅。
分享:
扫描分享到社交APP
上一篇
下一篇