Collections.emptyList () vs. ny listeforekomst

1. Introduksjon

I denne korte opplæringen vil vi illustrere forskjellen mellom Collections.emptyList () og en ny listeforekomst.

2. Uforanderlighet

Kjerneforskjellen mellom java.util.Collections.emptyList () og en ny liste f.eks. ny ArrayList () er uforanderlighet.

Collections.emptyList () returnerer en liste (java.util.Collections.EmptyList) som ikke kan endres.

Når du oppretter en ny listeforekomst, kan du endre den avhengig av implementeringen:

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

3. Objektskaping

Collection.emptyList () oppretter en ny tom listeforekomst bare en gang, som vist i kildekoden:

offentlig statisk sluttliste EMPTY_LIST = ny EmptyList (); offentlig statisk endelig Liste tomListe () {retur (Liste) EMPTY_LIST; }

4. Lesbarhet

Når du eksplisitt vil opprette en tom liste, da Collections.emptyList () uttrykte den opprinnelige intensjonen bedre f.eks. ny ArrayList ().

5. Konklusjon

I denne artikkelen har vi fokusert på forskjellene mellom Collections.emptyList () og en ny listeforekomst.

Som alltid er full kildekode tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found