如何使用没有空格的arraylist

时间:2014-08-05 07:30:10

标签: java arraylist

ArrayList<String> values = new ArrayList<>();
    values.add("APAC");
    values.add("North America");
    values.add("South America");
    values.add("Europe");

System.out.println(values);

这将打印:

[APAC, North America, South America, Europe]

有没有办法可以在[APAC,North America,South America,Europe]之后将输出作为','而没有空格。有一个类似的问题here,但它实际上使用了StringBuilder和所有这些。是否有更简单的方法来获得此输出?

6 个答案:

答案 0 :(得分:3)

致电时

System.out.println(values);

Java将在toString()上调用values方法,并输出返回的字符串。

我们可以手动调用toString(),然后像修改其他任何内容一样修改返回的String。因此,提供&#34;,&#34;没有出现在您的列表中,以下情况应该可以正常工作:

System.out.println(values.toString().replace(", ", ",");

答案 1 :(得分:1)

使用Java8 Stream-API:

System.out.println("[" + values.stream().collect(Collectors.joining(",")) + "]");

答案 2 :(得分:0)

创建自己的类ArrayList并覆盖toString()方法。见

AbstractCollection#toString()

答案 3 :(得分:0)

使用google's guava

System.out.println("["+Joiner.on(",").join(values)+"]");

放置它的最佳位置是覆盖toString方法

的子类

答案 4 :(得分:0)

将ArrayList扩展到您自己的类中,并根据需要覆盖toString()方法。

答案 5 :(得分:0)

对于这个简单的案例,可能不是最简单的解决方案,但一般情况下,您可能会因为使用某些第三方集合库来进行此类操作而受益。

如果您希望将Guava包含在您的项目中,这将允许您以下列方式重写上面的代码:

Joiner joiner = Joiner.on(",");
List<String> values = ImmutableList.of("APAC", "North America", "South America", "Europe");

String valuesString = joiner.join(values);
System.out.println(valuesString);

此外,如果您已经在使用Java 8,那么lambda表达式已经引入了mkString函数。有关如何将其用于项目中的集合的详细解释,请参阅此博客文章: