919 Stimmen

Wie man eine neue Liste in Java erstellt

Wir erstellen eine Set als:

Set myset = new HashSet()

Wie schaffen wir eine List in Java?

1172voto

Dan Vinton Punkte 25571
List myList = new ArrayList();

oder mit Generika ( Java 7 oder später)

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

oder mit Generika (alte Java-Versionen)

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

596voto

Aaron Maenpaa Punkte 112919

Außerdem können Sie eine Liste erstellen, die Dinge enthält (auch wenn sie eine feste Größe hat):

List<String> messages = Arrays.asList("Hello", "World!", "How", "Are", "You");

213voto

Sergii Shevchyk Punkte 37348

Lassen Sie mich zusammenfassen und etwas hinzufügen:

JDK

1. new ArrayList<String>();
2. Arrays.asList("A", "B", "C")

Guave

1. Lists.newArrayList("Mike", "John", "Lesly");
2. Lists.asList("A","B", new String [] {"C", "D"});

Unveränderliche Liste

1. Collections.unmodifiableList(new ArrayList<String>(Arrays.asList("A","B")));
2. ImmutableList.builder()                                      // Guava
            .add("A")
            .add("B").build();
3. ImmutableList.of("A", "B");                                  // Guava
4. ImmutableList.copyOf(Lists.newArrayList("A", "B", "C"));     // Guava

Leere unveränderliche Liste

1. Collections.emptyList();
2. Collections.EMPTY_LIST;

Liste der Charaktere

1. Lists.charactersOf("String")                                 // Guava
2. Lists.newArrayList(Splitter.fixedLength(1).split("String"))  // Guava

Liste ganzer Zahlen

Ints.asList(1,2,3);                                             // Guava

96voto

Oleksandr Pyrohov Punkte 13894

In Java 8

Zur Erstellung einer nicht leeren Liste mit fester Größe (Operationen wie Hinzufügen, Entfernen usw. werden nicht unterstützt):

List<Integer> list = Arrays.asList(1, 2); // but, list.set(...) is supported

Um eine nicht leere veränderbare Liste zu erstellen:

List<Integer> list = new ArrayList<>(Arrays.asList(3, 4));

In Java 9

Verwendung eines neuen List.of(...) statische Fabrikmethoden:

List<Integer> immutableList = List.of(1, 2);

List<Integer> mutableList = new ArrayList<>(List.of(3, 4));

In Java 10

Die Verwendung des Inferenz lokaler Variablentypen :

var list1 = List.of(1, 2);

var list2 = new ArrayList<>(List.of(3, 4));

var list3 = new ArrayList<String>();

Und befolgen Sie die besten Praktiken...

Verwenden Sie keine Rohtypen

Seit Java 5 sind Generics ein Teil der Sprache - Sie sollten sie verwenden:

List<String> list = new ArrayList<>(); // Good, List of String

List list = new ArrayList(); // Bad, don't do that!

Programm an Schnittstellen

Programmieren Sie zum Beispiel die List Schnittstelle:

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

Anstelle von:

ArrayList<Double> list = new ArrayList<>(); // This is a bad idea!

30voto

Adam Jaskiewicz Punkte 10844

Erste Lektüre este dann lesen Sie este y este . In neun von zehn Fällen werden Sie eine dieser beiden Implementierungen verwenden.

In der Tat, lesen Sie einfach Sun's Guide zum Rahmenwerk für Sammlungen .

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