Collections.emptyList () vs. Neue Listeninstanz

1. Einleitung

In diesem kurzen Tutorial veranschaulichen wir den Unterschied zwischen Collections.emptyList () und einer neuen Listeninstanz.

2. Unveränderlichkeit

Der Hauptunterschied zwischen java.util.Collections.emptyList () und einer neuen Liste, z. B. new ArrayList (), ist die Unveränderlichkeit.

Collections.emptyList () gibt eine Liste ( java.util.Collections.EmptyList ) zurück, die nicht geändert werden kann.

Wenn Sie eine neue Listeninstanz erstellen, können Sie diese je nach Implementierung ändern:

@Test public void givenArrayList_whenAddingElement_addsNewElement() { List mutableList = new ArrayList(); mutableList.add("test"); assertEquals(mutableList.size(), 1); assertEquals(mutableList.get(0), "test"); } @Test(expected = UnsupportedOperationException.class) public void givenCollectionsEmptyList_whenAdding_throwsException() { List immutableList = Collections.emptyList(); immutableList.add("test"); }

3. Objekterstellung

Collection.emptyList () erstellt nur einmal eine neue leere Listeninstanz , wie im Quellcode gezeigt:

public static final List EMPTY_LIST = new EmptyList(); public static final  List emptyList() { return (List) EMPTY_LIST; }

4. Lesbarkeit

Wenn Sie explizit eine leere Liste erstellen möchten, hat Collections.emptyList () die ursprüngliche Absicht besser ausgedrückt, z. B. new ArrayList () .

5. Schlussfolgerung

In diesem auf den Punkt gebrachten Artikel haben wir uns auf die Unterschiede zwischen Collections.emptyList () und einer neuen Listeninstanz konzentriert.

Wie immer ist der vollständige Quellcode auf GitHub verfügbar.