打印不带方括号和逗号的ArrayList元素

时间:2020-05-19 09:38:26

标签: java arraylist

我想像打印数组一样打印ArrayList的所有元素,而不必从ArrayList创建数组。 其实

ArrayList a=new ArrayList();
a.add(1);
a.add(2);
a.add(3);
System.out.println(a);

此处输出:[1,2,3]

我想将这些元素打印为:1 2 3

我该怎么办?ArrayList中有任何方法吗?

3 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。但是首先,您必须指定列表将使用的类型。我还建议您使用List作为数据类型,而不是ArrayList。在您的示例中,将是

List<Integer> a = new ArrayList<>();

要打印,可以致电

System.out.println(Arrays.toString(a.toArray()));

但是我建议使用for循环或for-each循环来完成。就是这样

// for-loop: This will iterate through the list by index
for(int i=0; i < a.size(); i++){
    System.out.print(a.get(i));
}
System.out.println();

// for-each: This will iterate through the list by Iterator
for(Integer val : a){
    System.out.print(val + " ");
}
System.out.println();

希望我能为您提供帮助

答案 1 :(得分:0)

也许您想使用Lambda表达式:

a.forEach(System.out::println);
a.forEach( elem -> System.out.print(elem + " "));

HTH

答案 2 :(得分:0)

获得结果的一种可能方法是以这种方式使用StringJoiner类:

List<Integer> a = new ArrayList<Integer>();
a.add(1);
a.add(2);
a.add(3);

StringJoiner sj = new StringJoiner(" ");
for (Integer elem : a) {
    sj.add(elem.toString());
}

String spaceSeparatedNumbers = sj.toString();
System.out.println(spaceSeparatedNumbers); //<-- it will print 1, 2, 3

获得相同结果的另一种方法是使用Stream的{​​{1}}通过这种方式:

Collectors.joining