In Java werden sowohl List als auch ArrayList häufig zum Erstellen von Objektsammlungen verwendet. Es gibt jedoch subtile, aber wichtige Unterschiede zwischen den beiden.
Die gestellte Frage lautet, ob (1) und (2) austauschbar sind.
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
Die Antwort lautet, dass (1) im Allgemeinen gegenüber (2) bevorzugt wird.
Die Grund (1) wird bevorzugt, weil das Prinzip der Kodierung von Schnittstellen und der Kapselung zugrunde liegt. List ist eine Schnittstelle, während ArrayList eine spezifische Implementierung dieser Schnittstelle ist.
Indem Sie myList als List> deklarieren, können Sie ihr jede Implementierung der List-Schnittstelle (z. B. LinkedList, Vector) zuweisen. Diese Flexibilität ermöglicht es Ihnen, zur Laufzeit die am besten geeignete Implementierung für Ihre Anwendung auszuwählen.
Wenn Sie dagegen myList als ArrayList> deklarieren, binden Sie es speziell an die ArrayList-Implementierung. Dies schränkt Ihre Möglichkeiten ein, die Implementierung später zu ändern.
Betrachten Sie das folgende Beispiel:
List<Integer> myList = new LinkedList<Integer>();
Zunächst können Sie mit einer LinkedList-Implementierung beginnen Listenschnittstelle. Angenommen, Sie stoßen jedoch auf einen Leistungsengpass, für den eine effizientere Implementierung wie ArrayList besser geeignet ist.
In diesem Fall können Sie die LinkedList problemlos gegen eine ArrayList austauschen, ohne dass sich dies auf andere Teile der Codebasis auswirkt. Wenn Sie ArrayList
Das obige ist der detaillierte Inhalt vonListe vs. ArrayList in Java: Wann sollten Sie welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!