как напечатать элемент "e" в списке "arraylist" out?
ArrayList<Dog> list = new ArrayList<Dog>();
Dog e = new Dog();
list.add(e);
System.out.println(list);
как напечатать элемент "e" в списке "arraylist" out?
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()
, чтобы он знал, как печатать себя. В противном случае ваш код выглядит правильно.
Вот обновленное решение для Java8, используя lambdas и streams:
System.out.println(list.stream()
.map(Object::toString)
.collect(Collectors.joining("\n")));
Или, не добавляя список в одну большую строку:
list.stream().forEach(System.out::println);
Вы должны переопределить метод toString()
в своем классе Dog
. который будет вызываться при использовании этого объекта в sysout.
Печать определенного элемента
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