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.