Печатать элемент массива?

как напечатать элемент "e" в списке "arraylist" out?

 ArrayList<Dog> list = new ArrayList<Dog>();
 Dog e = new Dog();
 list.add(e);
 System.out.println(list);

Ответ 1

Вы хотите распечатать весь список или выполнить итерацию по каждому элементу списка? В любом случае, чтобы напечатать что-либо значимое, ваш класс 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

Ответ 2

Сначала убедитесь, что класс Dog реализует метод public String toString(), затем используйте

System.out.println(list.get(index))

где index - это позиция внутри списка. Конечно, поскольку вы обеспечиваете свою реализацию, вы можете решить, как печатает сам себя.

Ответ 3

Для вашего кода требуется, чтобы класс Dog переопределил метод toString(), чтобы он знал, как печатать себя. В противном случае ваш код выглядит правильно.

Ответ 4

Вот обновленное решение для Java8, используя lambdas и streams:

System.out.println(list.stream()
                       .map(Object::toString)
                       .collect(Collectors.joining("\n")));

Или, не добавляя список в одну большую строку:

list.stream().forEach(System.out::println);

Ответ 5

Вы должны переопределить метод toString() в своем классе Dog. который будет вызываться при использовании этого объекта в sysout.

Ответ 6

Печать определенного элемента

list.get(INDEX)

Я думаю, что лучший способ распечатать весь список за один раз, и это также позволит помещать цикл

Arrays.toString(List.toArray())

Ответ 7

Если вы хотите напечатать 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