web-dev-qa-db-fra.com

Convertir la collection en liste

Je voudrais demander: comment convertir une Collection en une List en Java?

45
Mercer

Si vous avez déjà créé une instance de votre sous-type de liste (par exemple, ArrayList, LinkedList), vous pouvez utiliser la méthode addAll.

par exemple.,

l.addAll(myCollection)

De nombreux sous-types de liste peuvent également prendre la collection source dans leur constructeur. 

51
Uri
Collection<MyObjectType> myCollection = ...;
List<MyObjectType> list = new ArrayList<MyObjectType>(myCollection);

Voir le Parcours des collections dans les Tutoriels Java .

62
Michael Myers
List list;
if (collection instanceof List)
{
  list = (List)collection;
}
else
{
  list = new ArrayList(collection);
 }
6
Sandeep Bhardwaj

Créez une nouvelle liste et appelez addAll avec la collection.

2
bmargulies

Merci à Sandeep de l’avoir mise. Nous venons d’ajouter un contrôle nul pour éviter NullPointerException dans une autre instruction.

if(collection==null){
  return Collections.emptyList();
}
List list;
if (collection instanceof List){
  list = (List)collection;
}else{
  list = new ArrayList(collection);
}
2

vous pouvez utiliser l'une des 2 solutions .. mais demandez-vous s'il est nécessaire de cloner vos collections, car les deux collections contiendront les mêmes références d'objets

0
Cshah