我想像打印数组一样打印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中有任何方法吗?
答案 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