如何在ArrayList「list」中打印元素「e」?print arraylist元素?
ArrayList<Dog> list = new ArrayList<Dog>();
Dog e = new Dog();
list.add(e);
System.out.println(list);
如何在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