525 Stimmen

Wie initialisiert man ein List<String>-Objekt in Java?

Ich kann eine Liste wie im folgenden Code nicht initialisieren:

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

Ich habe folgenden Fehler:

Der Typ kann nicht instanziiert werden List<String>

Wie kann ich instanziieren List<String> ?

11voto

Daniel Perník Punkte 4798

In den meisten Fällen wollen Sie einfache ArrayList - eine Implementierung von List

Vor JDK Version 7

List<String> list = new ArrayList<String>();

Ab JDK 7 können Sie den Diamant-Operator verwenden

List<String> list = new ArrayList<>();

Weitere Informationen finden Sie hier Oracle Dokumentation - Sammlungen

9voto

Jakub Zaverka Punkte 8654

List ist nur eine Schnittstelle, eine Definition einer generischen Liste. Sie müssen eine Implementierung dieser Listenschnittstelle bereitstellen. Die zwei gängigsten sind:

ArrayList - eine über ein Array implementierte Liste

List<String> supplierNames = new ArrayList<String>();

LinkedList - eine Liste, die wie eine zusammenhängende Kette von Elementen aufgebaut ist

List<String> supplierNames = new LinkedList<String>();

7voto

Uli Punkte 574

Je nach Art der Liste, die Sie verwenden möchten, können Sie etwas wie

List<String> supplierNames = new ArrayList<String>();

sollte Sie in Schwung bringen.

List ist die Schnittstelle, ArrayList ist eine Implementierung der List-Schnittstelle. Weitere Implementierungen, die vielleicht besser zu Ihren Bedürfnissen passen, finden Sie in der JavaDocs der Schnittstelle List .

7voto

Sakiboy Punkte 6765

Wenn Sie nur eine Datei erstellen möchten unveränderlich List<T> mit nur eine Objekt enthalten ist, können Sie diese API verwenden:

List<String> oneObjectList = Collections.singletonList("theOnlyObject”);

Mehr Informationen: docs

5voto

someone Punkte 6527

Liste ist eine Schnittstelle . Sie können List nicht verwenden, um es zu initialisieren.

  List<String> supplierNames = new ArrayList<String>();

Dies sind einige der in die Liste aufgenommenen Klassen,

ArrayList, LinkedList, Vector

Sie können dies je nach Ihren Anforderungen verwenden. Jede dieser Klassen hat ihre eigenen Merkmale.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X