print arraylist元素?
问题描述:
如何在ArrayList“list”中打印元素“e”?print arraylist元素?
ArrayList<Dog> list = new ArrayList<Dog>();
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<Dog> list = new ArrayList<Dog>();
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
类已覆盖了toString()
方法,以便它知道如何将自己打印出来。否则,你的代码看起来正确。
答
你应该在你Dog
类中重写toString()
方法。当你在sysout中使用这个对象时会调用它。
答
这里是Java8更新的解决方案,使用lambda表达式和流:
System.out.println(list.stream()
.map(Object::toString)
.collect(Collectors.joining("\n")));
或者不加入该列表为一个大字符串:
list.stream().forEach(System.out::println);
答
打印特定元素是
list.get(INDEX)
我认为最好的方法是一次打印整个列表,这也将避免把一个环
Arrays.toString(list.toArray())
答
如果要打印与整数一个ArrayList,因为你可以使用下面的代码的例子。
class Test{
public static void main(String[] args){
ArrayList<Integer> arraylist = new ArrayList<Integer>();
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
的System.out.println(E); – 2010-01-12 06:46:32