Java中如何一行打印包含int数组的List内容?
实现List<int[]>的自定义格式输出
刚好碰到过类似的需求,给你两种可行的实现方式,都能输出你想要的{[0,1],[2,3]}格式:
方法一:用Java 8+ Stream API(推荐)
Stream API可以让代码更简洁,一行搞定格式拼接:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<int[]> outputList = new ArrayList<>(); int[] result = new int[]{0, 1}; int[] result2 = new int[]{2, 3}; outputList.add(result); outputList.add(result2); // 核心逻辑:把每个数组转成字符串,再拼接成目标格式 String formattedOutput = outputList.stream() .map(Arrays::toString) // 将每个int[]转为"[x,y]"格式的字符串 .collect(Collectors.joining(",", "{", "}")); // 用逗号连接,首尾加{} System.out.println(formattedOutput); // 输出:{[0,1],[2,3]} } }
方法二:手动拼接字符串(兼容Java 8之前版本)
如果你的项目还在使用Java 8以下的版本,可以用StringBuilder手动构建目标字符串:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<int[]> outputList = new ArrayList<>(); int[] result = new int[]{0, 1}; int[] result2 = new int[]{2, 3}; outputList.add(result); outputList.add(result2); StringBuilder sb = new StringBuilder("{"); for (int i = 0; i < outputList.size(); i++) { sb.append(Arrays.toString(outputList.get(i))); // 最后一个元素后面不加逗号 if (i != outputList.size() - 1) { sb.append(","); } } sb.append("}"); System.out.println(sb.toString()); // 输出:{[0,1],[2,3]} } }
两种方法的核心思路都是:先把List中的每个int[]数组转换成[x,y]格式的字符串,再把这些字符串用逗号连接,最后在前后加上大括号,就能得到你想要的输出格式了。
内容的提问来源于stack exchange,提问作者rickygrimes
相关产品推荐
相关产品推荐

