2010-01-12 5 views
10

Comment imprimer l'élément "e" dans la liste "arraylist"?imprimer élément d'arraylist?

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

System.out.println (e); –

Répondre

12

Voulez-vous imprimer la liste complète ou vous souhaitez parcourir chaque élément de la liste? De toute façon pour imprimer quelque chose de significatif votre classe Dog besoin de remplacer la méthode toString() (comme mentionné dans d'autres réponses) de la classe Object pour retourner un résultat valide.

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

La sortie de ce code est:

[Tommy, tiger] 
Tommy 
tiger 
2

Votre code exige que la classe a Dog substituée la méthode toString() pour qu'il sache comment s'imprimer. Sinon, votre code semble correct.

6

assurez-vous que Dog classe implémente la méthode public String toString() puis utilisez

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

où l'indice est la position dans la liste. Bien sûr, puisque vous fournissez votre implémentation, vous pouvez décider comment le chien s'imprime.

+1

Je voudrais vraiment savoir pourquoi les gens downvote sans aucune explication .. – Jack

+1

Je suis d'accord, il serait raisonnable d'accepter des notes de bas seulement avec un mot d'explication. – mloskot

0

Vous devez remplacer la méthode toString() dans votre classe Dog. qui sera appelée lorsque vous utiliserez cet objet dans sysout.

2

Voici une solution mise à jour pour Java8, en utilisant lambdas et cours d'eau:

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

Ou, sans se joindre à la liste dans une grande chaîne:

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

Impression d'un élément spécifique est

list.get(INDEX) 

Je pense que le meilleur moyen d'imprimer la liste entière en une seule fois et cela permettra également d'éviter de mettre un boucle

Arrays.toString (list.toArray())

0

Si vous souhaitez imprimer un ArrayList avec des nombres entiers, comme un exemple, vous pouvez utiliser le code ci-dessous.

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

la sortie est au-dessus de code:

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10