打印arraylist元素?

如何在arraylist“list”中打印元素“e”?

ArrayList list = new ArrayList(); Dog e = new Dog(); list.add(e); System.out.println(list); 

是否要打印整个列表或者想要遍历列表中的每个元素? 无论哪种方式打印任何有意义的Dog类都需要覆盖Object类中的toString()方法(如其他答案中所述)以返回有效结果。

 public class Print { public static void main(final String[] args) { List list = new ArrayList(); Dog e = new Dog("Tommy"); list.add(e); list.add(new Dog("tiger")); System.out.println(list); for(Dog d:list) { System.out.println(d); // prints [Tommy, tiger] } } private static class Dog { private final String name; public Dog(final String name) { this.name = name; } @Override public String toString() { return name; } } } 

此代码的输出是:

 [Tommy, tiger] Tommy tiger 

首先确保Dog类实现方法public String toString()然后使用

 System.out.println(list.get(index)) 

其中index是列表中的位置。 当然,既然你提供了实现,你可以决定狗自己打印的方式。

这是Java8的更新解决方案,使用lambda和流:

 System.out.println(list.stream() .map(Object::toString) .collect(Collectors.joining("\n"))); 

或者,不将列表加入一个大字符串:

 list.stream().forEach(System.out::println); 

您的代码要求Dog类重写了toString()方法,以便它知道如何打印出来。 否则,您的代码看起来正确。

你应该在Dog类中覆盖toString()方法。 在sysout中使用此对象时将调用它。

打印特定元素是

 list.get(INDEX) 

我认为一次打印整个列表的最佳方法也可以避免循环

Arrays.toString(list.toArray())

如果要打印带整数的arraylist,作为示例,您可以使用下面的代码。

 class Test{ public static void main(String[] args){ ArrayList arraylist = new ArrayList(); for(int i=0; i<=10; i++){ arraylist .add(i); } for (Integer n : arraylist ){ System.out.println(n); } } } 

输出高于代码:

 0 1 2 3 4 5 6 7 8 9 10