2010-01-12 18 views
10

Jak wydrukować element "e" na liście "lista tablic"?print element listy?

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

System.out.println (E); –

Odpowiedz

12

Czy chcesz wydrukować całą listę, czy też chcesz przejrzeć poszczególne elementy listy? W każdym razie, aby wydrukować coś znaczącego, twoja klasa Dog musi zastąpić metodę toString() (jak wspomniano w innych odpowiedziach) z klasy Object, aby zwrócić prawidłowy wynik.

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; 
     } 
    } 
} 

Wyjście z tego kodu jest:

[Tommy, tiger] 
Tommy 
tiger 
2

Twój kod wymaga, żeby klasa Dog nadpisuje metodę toString() tak, że wie, jak drukować się na zewnątrz. W przeciwnym razie Twój kod wygląda poprawnie.

6

Najpierw upewnij się, że Dog klasa implementuje metodę public String toString() następnie użyć

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

gdzie wskaźnik jest pozycja wewnątrz listy. Oczywiście od momentu, w którym podasz swoją implementację, możesz zdecydować, w jaki sposób pies sam się drukuje.

+1

Naprawdę chciałabym wiedzieć, dlaczego ludzie nie zgadzają się bez objaśnień. – Jack

+1

Zgadzam się, że rozsądnie byłoby zaakceptować tylko dolne słowa wraz ze słowem wyjaśnienia. – mloskot

0

powinny przesłonić toString() metodę w swojej klasie Dog. który zostanie wywołany, gdy użyjesz tego obiektu w sysout.

2

Oto zaktualizowana rozwiązanie dla Java8 korzystając lambdy i strumienie:

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

Albo, bez łączenia listy w jeden duży wyrażenie:

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

Drukowanie konkretny element jest

list.get(INDEX) 

Myślę, że najlepszym sposobem na wydrukowanie całej listy za jednym razem, a także uniknie Pętla

Arrays.toString (list.toArray())

0

Jeśli chcesz wydrukować ArrayList z liczb całkowitych, jako przykład można użyć poniższy kod.

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); 
     } 
    } 
} 

wyjście jest powyżej kodu:

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
Powiązane problemy