15 votes

Pourquoi la méthode toString() fonctionne différemment entre les objets Array et ArrayList en Java

    String[] array = {"a","c","b"};
    ArrayList<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    System.out.println(array);
    System.out.println(list);

Para list [a, b, c] est émis alors que pour array une adresse est sortie. Lorsque nous voulons sortir l'adresse array nous pouvons utiliser Arrays.toString(array); qui fonctionne exactement comme list .

Je me demande juste pourquoi on ne peut pas appeler toString() directement sur array pour obtenir les valeurs. N'est-il pas plus intuitif et plus pratique de procéder ainsi ? Quel est le résultat des différents traitements sur Array y ArrayList ?

-1voto

bharathi Points 1221

Para array toString() il imprime l'adresse mémoire. Mais en ArrayList cette classe remplace Object toString() méthode .

implémentation de la fonction toString() de ArrayList

   public String toString() {
    Iterator<E> i = iterator();
    if (! i.hasNext())
        return "[]";

    StringBuilder sb = new StringBuilder();
    sb.append('[');
    for (;;) {
        E e = i.next();
        sb.append(e == this ? "(this Collection)" : e);
        if (! i.hasNext())
        return sb.append(']').toString();
        sb.append(", ");
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X