616 votes

Convertir l’ensemble de la liste sans créer de nouvelle liste

J’utilise ce code pour convertir un à un :

Je veux éviter de créer une nouvelle liste dans chaque itération de la boucle. Est-ce possible ?

913voto

amit Points 74385

Vous pouvez utiliser la Liste.addAll() méthode. Il accepte une Collection comme un argument, et votre ensemble est une Collection.

mainList.addAll(set);

EDIT: que répondre à la modification de la question.
Il est facile de voir que si vous voulez avoir un Map avec Lists comme des valeurs, afin d'avoir des k valeurs différentes, vous devez créer k listes différentes.
Donc: Vous ne pouvez pas éviter la création de ces listes, les listes devront être créés.

Possible travail autour de:
Déclarer votre Map comme Map<String,Set> ou Map<String,Collection> au lieu de cela, et il suffit d'insérer votre jeu.

504voto

ZengSN Points 578

Utilisez le constructeur pour le convertir:

 List<?> list = new ArrayList(set);
 

94voto

chaiyachaiya Points 249

Elle puise goyave recueillir, vous pouvez aussi utiliser
``
Ce serait très similaire à la réponse précédente amit, sauf que vous n’avez pas besoin de déclarer (ou instancier) n’importe quel objet de liste.

5voto

Jerome Loisel Points 109

Je le ferais :

-16voto

Imran Tariq Points 3822
Map<String, List> mainMap = new HashMap<String, List>();

for(int i=0; i<something.size(); i++){
  Set set = getSet(...); //return different result each time
  mainMap.put(differentKeyName, new ArrayList(set));
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X