如何不转换为数组,按空格分隔打印ArrayList元素?
解决ArrayList空格分隔输出的问题
嘿,这个需求我之前也碰到过!遗憾的是,ArrayList并没有内置的直接方法能直接输出成1 2 3这样的空格分隔格式——因为它默认的toString()方法就是输出带方括号和逗号的[1,2,3]。不过我们有几种简单的实现方式,来看看:
方法一:普通循环遍历(兼容所有Java版本)
这是最基础的方式,手动控制每个元素的输出和空格:
ArrayList<Integer> a = new ArrayList<>(); a.add(1); a.add(2); a.add(3); for (int i = 0; i < a.size(); i++) { // 除了第一个元素,前面先加空格 if (i > 0) { System.out.print(" "); } System.out.print(a.get(i)); } // 最终输出:1 2 3
方法二:Java 8+ Stream API(简洁写法)
如果你的项目用的是Java 8及以上,用Stream可以一行搞定:
ArrayList<Integer> a = new ArrayList<>(); a.add(1); a.add(2); a.add(3); String result = a.stream() .map(String::valueOf) // 把每个元素转成字符串 .collect(Collectors.joining(" ")); // 用空格拼接 System.out.println(result); // 输出:1 2 3
方法三:Java 8+ StringJoiner(更直观的拼接工具)
StringJoiner是专门用来拼接字符串的工具,用法也很清晰:
ArrayList<Integer> a = new ArrayList<>(); a.add(1); a.add(2); a.add(3); StringJoiner joiner = new StringJoiner(" "); for (Integer num : a) { joiner.add(num.toString()); } System.out.println(joiner.toString()); // 输出:1 2 3
简单总结下:如果是老版本Java就用循环,新版本的话Stream或者StringJoiner都能让代码更简洁。
内容的提问来源于stack exchange,提问作者Shoukhin78
相关产品推荐
相关产品推荐

