À quoi sert Collections.singletonList()
Java? Je comprends qu'il renvoie une liste avec un élément. Pourquoi voudrais-je avoir une méthode distincte pour faire cela? Comment l'immuabilité joue-t-elle ici un rôle?
Existe-t-il des cas d'utilisation spéciaux utiles pour cette méthode plutôt que d'être simplement une méthode pratique?
Réponses:
Le javadoc dit ceci:
Tu demandes:
Principalement par commodité ... pour vous éviter d'avoir à écrire une séquence d'instructions pour:
Cela peut aussi être un peu plus rapide et / ou économiser un peu de mémoire, mais il est peu probable que ces petites économies soient significatives. (Une application qui crée un grand nombre de listes de singleton est pour le moins inhabituelle.)
Cela fait partie de la spécification de la méthode; voir au dessus.
De toute évidence, il existe des cas d'utilisation où il est pratique d'utiliser la
singletonList
méthode. Mais je ne sais pas comment vous distingueriez (objectivement) entre un cas d'utilisation ordinaire et un cas "spécialement utile" ...la source
Voici une vue sur les méthodes singleton:
la source
Depuis le javadoc
exemple
Utilisez-le lorsque le code attend une liste en lecture seule, mais que vous ne souhaitez y passer qu'un élément.
singletonList
est (thread-) sûr et rapide.la source
Pour répondre à votre question immuable:
Collections.singletonList
créera une liste immuable. Une liste immuable (également appelée liste non modifiable) ne peut pas voir son contenu modifié. Les méthodes pour ajouter ou supprimer des éléments lèveront des exceptions si vous essayez de modifier le contenu.Une liste singleton contient uniquement cet élément et ne peut pas être modifiée.
la source
Si une collection Immutable / Singleton fait référence à celle qui n'a qu'un seul objet et qui n'est pas modifiée davantage, alors la même fonctionnalité peut être obtenue en créant une collection "UnmodifiableCollection" n'ayant qu'un seul objet. Puisque la même fonctionnalité peut être obtenue par la collection non modifiable avec un seul objet, alors à quoi sert la collection Singleton?
la source
singletonList peut contenir une instance de n'importe quel objet. L'état de l'objet peut être modifié.
On ne peut pas définir unmodifiableList comme ci-dessus.
la source