Collections.emptyList () vs. nová inštancia zoznamu

1. Úvod

V tomto krátkom návode si ukážeme rozdiely medzi Collections.emptyList () a nová inštancia zoznamu.

2. Nezmeniteľnosť

Základný rozdiel medzi java.util.Collections.emptyList () a nový zoznam napr. nový ArrayList () je nemennosť.

Collections.emptyList () vráti zoznam (java.util.Collections.EmptyList), ktoré nie je možné upraviť.

Pri vytváraní novej inštancie zoznamu ju môžete upraviť v závislosti od implementácie:

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

3. Vytváranie objektov

Collection.emptyList () vytvorí novú inštanciu prázdneho zoznamu iba raz, ako je uvedené v zdrojovom kóde:

verejný statický konečný zoznam EMPTY_LIST = nový EmptyList (); public static final List emptyList () {return (List) EMPTY_LIST; }

4. Čitateľnosť

Ak chcete explicitne vytvoriť prázdny zoznam, potom Collections.emptyList () vyjadril pôvodný zámer lepšie napr. nový ArrayList ().

5. Záver

V tomto bodovom článku sme sa zamerali na rozdiely medzi Collections.emptyList () a nová inštancia zoznamu.

Celý zdrojový kód je ako vždy k dispozícii na GitHub.