Arrays.asList () vs Collections.singletonList ()

Y a-t-il un avantage (ou une grande différence) à utiliser Arrays.asList (quelque chose) sur Collections.singletonList (quelque chose) pour créer une liste contenant un élément? Ce dernier rend également la liste retournée immuable.

Collections.singletonList(something) est immuable, alors que Arrays.asList(something) est une représentation de taille fixe d’un tableau où la liste et le tableau sont joints au tas.

Arrays.asList(something) autorise les modifications non structurelles qui sont apscopes à la liste et au tableau joint. Il génère une UnsupportedOperationException pour l’ajout, la suppression d’éléments, bien que vous puissiez définir un élément pour un index particulier.

Toute modification apscope à la liste renvoyée par Collections.singletonList(something) entraînera une UnsupportedOperationException .

De même, la capacité de la liste renvoyée par Collections.singletonList(something) sera toujours 1, contrairement à Arrays.asList(something) dont la capacité sera la taille du tableau sauvegardé.

Je voudrais juste append que la singletonlist n’est pas sauvegardée par un tableau et a juste une référence à cet élément. Vraisemblablement, cela prendrait moins de mémoire et pourrait être important selon le nombre de listes que vous souhaitez créer.