распечатать элемент массива? - PullRequest
12 голосов
/ 12 января 2010

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

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

Ответы [ 7 ]

12 голосов
/ 12 января 2010

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

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

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

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

4 голосов
/ 13 апреля 2016

Вот обновленное решение для Java8, использующее лямбды и потоки:

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

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

list.stream().forEach(System.out::println);
2 голосов
/ 12 января 2010

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

0 голосов
/ 18 октября 2017

Если вы хотите напечатать массив с целыми числами, в качестве примера вы можете использовать приведенный ниже код.

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
0 голосов
/ 01 февраля 2017

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

list.get(INDEX)

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

Arrays.toString (List.toArray ())

0 голосов
/ 12 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...