как вывести элемент "e" в массиве "list" наружу?
ArrayList<Dog> list = new ArrayList<Dog>();
Dog e = new Dog();
list.add(e);
System.out.println(list);
Вы хотите вывести весь список или итеративно просмотреть каждый элемент списка? В любом случае, чтобы вывести что-либо значимое, ваш класс Dog
должен переопределить метод toString()
(как упоминалось в других ответах) из класса Object
, чтобы вернуть правильный результат.
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
реализует метод public String toString()
, затем используйте
System.out.println(list.get(index))
где index - это позиция внутри списка. Конечно, поскольку вы предоставляете свою реализацию, вы можете решить, как собака будет печатать себя.
Ваш код требует, чтобы класс Dog
переопределил метод toString()
, чтобы он знал, как вывести себя на печать. В противном случае ваш код выглядит корректно.