Collections.emptyList () et nouvelle instance de liste

1. Introduction

Dans ce court didacticiel, nous illustrerons la différence entre Collections.emptyList () et une nouvelle instance de liste.

2. Immuabilité

La principale différence entre java.util.Collections.emptyList () et une nouvelle liste, par exemple new ArrayList (), est l'immuabilité.

Collections.emptyList () renvoie une liste ( java.util.Collections.EmptyList ) qui ne peut pas être modifiée.

Lors de la création d'une nouvelle instance de liste, vous pouvez la modifier en fonction de l'implémentation:

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

3. Création d'objets

Collection.emptyList () crée une nouvelle instance de liste vide une seule fois , comme indiqué dans le code source:

public static final List EMPTY_LIST = new EmptyList(); public static final  List emptyList() { return (List) EMPTY_LIST; }

4. Lisibilité

Lorsque vous voulez créer explicitement une liste vide, Collections.emptyList () exprime mieux l'intention d'origine, par exemple new ArrayList () .

5. Conclusion

Dans cet article précis, nous nous sommes concentrés sur les différences entre Collections.emptyList () et une nouvelle instance de liste.

Comme toujours, le code source complet est disponible sur GitHub.