Collections.emptyList () versus nieuwe lijstinstantie

1. Inleiding

In deze korte tutorial laten we het verschil zien tussen Collections.emptyList () en een nieuwe lijstinstantie.

2. Onveranderlijkheid

Het belangrijkste verschil tussen java.util.Collections.emptyList () en een nieuwe lijst, b.v. nieuwe ArrayList () is onveranderlijkheid.

Collections.emptyList () geeft een lijst terug (java.util.Collections.EmptyList) die niet kunnen worden gewijzigd.

Wanneer u een nieuwe lijstinstantie maakt, kunt u deze wijzigen, afhankelijk van de implementatie:

@Test openbare ongeldig gegevenArrayList_whenAddingElement_addsNewElement () {List mutableList = nieuwe ArrayList (); mutableList.add ("test"); assertEquals (mutableList.size (), 1); assertEquals (mutableList.get (0), "test"); } @Test (verwacht = UnsupportedOperationException.class) openbare leegte gegevenCollectionsEmptyList_whenAdding_throwsException () {List immutableList = Collections.emptyList (); immutableList.add ("test"); }

3. Objecten maken

Collectie.emptyList () maakt slechts één keer een nieuwe lege-lijstinstantie aan, zoals weergegeven in de broncode:

openbare statische definitieve lijst EMPTY_LIST = nieuwe EmptyList (); openbare statische definitieve lijst emptyList () {terugkeer (lijst) EMPTY_LIST; }

4. Leesbaarheid

Als u expliciet een lege lijst wilt maken, dan Collections.emptyList () de oorspronkelijke bedoeling beter uitgedrukt, b.v. nieuwe ArrayList ().

5. Conclusie

In dit artikel hebben we ons gericht op de verschillen tussen de Collections.emptyList () en een nieuwe lijstinstantie.

Zoals altijd is de volledige broncode beschikbaar op GitHub.