You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何打印包含字符串数组的List集合?

嗨,这个问题我之前在项目里也踩过坑!直接打印List<String[]>看不到数组内容,是因为Java里数组的默认toString()方法并不会输出元素,只会返回它的类型和内存哈希码(比如[Ljava.lang.String;@xxxxxx)。下面给你几种简单的解决办法:

方案1:逐个遍历数组打印

最直观的方式就是循环遍历List里的每个字符串数组,用Arrays.toString()方法来输出数组的实际内容:

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

public class TestPrintList {
    public static void main(String[] args) {
        String[] anArray = {"apple", "banana", "cherry"};
        String[] anArray2 = {"date", "elderberry"};
        List<String[]> kList = new ArrayList<>();
        kList.add(anArray);
        kList.add(anArray2);

        // 遍历每个数组并打印
        for (String[] arr : kList) {
            System.out.println(Arrays.toString(arr));
        }
    }
}

运行后会输出:

[apple, banana, cherry]
[date, elderberry]

方案2:用Stream API简化代码(Java 8+)

如果你的项目用Java 8及以上,可以用Stream API一行搞定,代码更简洁:

// 用Stream映射每个数组为可读字符串,然后打印
kList.stream()
     .map(Arrays::toString)
     .forEach(System.out::println);

效果和方案1完全一样,只是写法更优雅。

方案3:把整个List格式化为一个字符串打印

要是你想把整个List的内容以类似[[元素1,元素2], [元素3,元素4]]的形式一次性输出,可以用Stream结合Collectors来拼接:

import java.util.stream.Collectors;

// 格式化整个List为一个字符串
String formattedList = kList.stream()
                            .map(Arrays::toString)
                            .collect(Collectors.joining(", ", "[", "]"));
System.out.println(formattedList);

运行后会输出:

[[apple, banana, cherry], [date, elderberry]]

核心原理就是:Arrays.toString()方法会帮我们遍历数组的每个元素,把它们拼接成人类可读的字符串,而不是用数组默认的哈希码输出。

内容的提问来源于stack exchange,提问作者Sara Shall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:30:35