wake-up-neo.com

Was ist der Unterschied zwischen List und ArrayList?

Ich habe ArrayList kürzlich in meinem Android im Büro verwendet, und ich bin ein bisschen verwirrt zwischen List und ArrayList. Was ist der Unterschied zwischen beiden und was soll ich verwenden?

Auch ich habe einige Implementierungen davon gerne gesehen.

List<SomeObject> myList = new ArrayList<SomeObject>();

ArrayList<SomeObject> myList = new ArrayList<SomeObject>();

Was ist der Unterschied zwischen diesen beiden Instanzen?

147
Ariel Magbanua

In beiden Beispielen gibt es keinen Unterschied zwischen Listenimplementierungen. Es gibt jedoch einen Unterschied in der Art, wie Sie die Variable myList in Ihrem Code weiter verwenden können.

Wenn Sie Ihre Liste definieren als:

List myList = new ArrayList();

sie können nur Methoden und Referenzmember aufrufen, die in der Listenschnittstelle definiert sind. Wenn Sie es definieren als:

ArrayList myList = new ArrayList();

sie können ArrayList-spezifische Methoden aufrufen und ArrayList-spezifische Member zusätzlich zu denen verwenden, deren Definitionen von List geerbt werden.

Wenn Sie im ersten Beispiel eine Methode einer List-Schnittstelle aufrufen, die in ArrayList implementiert wurde, wird die Methode aus ArrayList aufgerufen (da die List-Schnittstelle keine Methoden implementiert).

Das nennt man Polymorphismus. Sie können es nachlesen.

163
ATrubka