我试图打印出一个列表的所有元素,但它是打印对象的指针,而不是值。
这是我的打印代码…
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
有人能告诉我为什么它不打印元素的值吗?
我试图打印出一个列表的所有元素,但它是打印对象的指针,而不是值。
这是我的打印代码…
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
有人能告诉我为什么它不打印元素的值吗?
当前回答
For循环输出列表的内容:
List<String> myList = new ArrayList<String>();
myList.add("AA");
myList.add("BB");
for ( String elem : myList ) {
System.out.println("Element : "+elem);
}
结果:
Element : AA
Element : BB
如果你想打印在单行(只是为了信息):
String strList = String.join(", ", myList);
System.out.println("Elements : "+strList);
结果:
Elements : AA, BB
其他回答
Java 8 Streams方法…
list.stream().forEach(System.out::println);
或者你可以简单地使用Apache Commons实用程序:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/ArrayUtils.html#toString-java.lang.Object-
List<MyObject> myObjects = ...
System.out.println(ArrayUtils.toString(myObjects));
你可以试试:
2D(或以上) System.out.println (Arrays.deepToString (list.toArray ())); 1 d System.out.println (Arrays.toString (list.toArray ()))
我现在正好在做这个…
List<Integer> a = Arrays.asList(1, 2, 3);
List<Integer> b = Arrays.asList(3, 4);
List<int[]> pairs = a.stream()
.flatMap(x -> b.stream().map(y -> new int[]{x, y}))
.collect(Collectors.toList());
Consumer<int[]> pretty = xs -> System.out.printf("\n(%d,%d)", xs[0], xs[1]);
pairs.forEach(pretty);
我也遇到过类似的问题。我的代码:
List<Integer> leaveDatesList = new ArrayList<>();
.....inserted value in list.......
方法1:在for循环中打印一个列表
for(int i=0;i<leaveDatesList.size();i++){
System.out.println(leaveDatesList.get(i));
}
方法2:在forEach中打印列表,for循环
for(Integer leave : leaveDatesList){
System.out.println(leave);
}
方法3:在java 8中打印列表
leaveDatesList.forEach(System.out::println);