Utilisation de Collections.singletonList ()?

Quelle est l’utilisation de Collections.singletonList() en Java? Je comprends que cela renvoie une liste avec un élément. Pourquoi voudrais-je avoir une méthode séparée pour le faire? Comment l’immuabilité joue-t-elle un rôle ici?

Existe-t-il des cas d’utilisation utiles pour cette méthode plutôt qu’une méthode pratique?

Le javadoc dit ceci:

“Retourne une liste immuable contenant uniquement l’object spécifié. La liste renvoyée est sérialisable.”

Tu demandes:

Pourquoi voudrais-je avoir une méthode séparée pour le faire?

Pour plus de commodité … pour vous éviter d’avoir à écrire une séquence de déclarations à:

  • créer un object liste vide
  • y append un élément, et
  • enveloppez-le avec un emballage immuable.

Existe-t-il des cas d’utilisation utiles pour cette méthode, au lieu d’être simplement une méthode pratique?

De toute évidence, il existe des cas d’utilisation où il est pratique d’utiliser la méthode singletonList . Mais je ne sais pas comment vous feriez (objectivement) une distinction entre un cas d’utilisation ordinaire et un cas “particulièrement utile” …

Voici une vue sur les méthodes singleton:

J’ai trouvé ces différentes méthodes “singleton” utiles pour transmettre une valeur unique à une API nécessitant une collection de cette valeur. Bien sûr, cela fonctionne mieux lorsque le code traitant la valeur transmise n’a pas besoin d’être ajouté à la collection.

 @param the sole object to be stored in the returned list. @return an immutable list containing only the specified object. import java.util.*; public class HelloWorld { public static void main(Ssortingng args[]) { // create an array of ssortingng objs Ssortingng initList[] = { "One", "Two", "Four", "One",}; // create one list List list = new ArrayList(Arrays.asList(initList)); System.out.println("List value before: "+list); // create singleton list list = Collections.singletonList("OnlyOneElement"); list.add("five"); //throws UnsupportedOperationException System.out.println("List value after: "+list); } } 

Utilisez-le lorsque le code attend une liste en lecture seule, mais que vous ne souhaitez lui transmettre qu’un seul élément. singletonList est (thread-) sûr et rapide.

Si une collection Immutable / Singleton fait référence à celle qui n’a qu’un seul object et qui n’est pas modifiée ultérieurement, la même fonctionnalité peut être obtenue en créant une collection “UnmodifiableCollection” ne comportant qu’un seul object. Étant donné que la même fonctionnalité peut être obtenue avec la collection Unmodifiable avec un object, à quoi sert la collection Singleton?

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 être modifiée. Les méthodes pour append ou supprimer des éléments déclencheront des exceptions si vous essayez de modifier le contenu.

Une liste de singleton ne contient que cet élément et ne peut pas être modifiée.