Collections.emptyList () vs. ny listeinstans

1. Introduktion

I denne korte vejledning illustrerer vi forskellen mellem Collections.emptyList () og en ny listeinstans.

2. Uforanderlighed

Kerneforskellen mellem java.util.Collections.emptyList () og en ny liste f.eks. ny ArrayList () er uforanderlighed.

Collections.emptyList () returnerer en liste (java.util.Collections.EmptyList) der ikke kan ændres.

Når du opretter en ny listeforekomst, kan du ændre den afhængigt af implementeringen:

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

3. Oprettelse af objekter

Collection.emptyList () opretter en ny tom listeinstans kun en gang, som vist i kildekoden:

offentlig statisk endelig liste EMPTY_LIST = ny EmptyList (); offentlig statisk endelig Liste tomListe () {return (Liste) EMPTY_LIST; }

4. Læsbarhed

Når du eksplicit vil oprette en tom liste, så Collections.emptyList () udtrykte den oprindelige hensigt bedre f.eks. ny ArrayList ().

5. Konklusion

I denne artikel har vi fokuseret på forskellene mellem Collections.emptyList () og en ny listeinstans.

Som altid er fuld kildekode tilgængelig på GitHub.