打印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