Muhammad Imran Tariq Muhammad Imran Tariq - 9 months ago 75
Java Question

Convert Set to List without creating new List

I am using this code to convert a

to a

Map<String, List> mainMap = new HashMap<String, List>();

for(int i=0; i<something.size(); i++){
Set set = getSet(...); //return different result each time
List listOfNames = new ArrayList(set);

I want to avoid creating a new list in each iteration of the loop. Is that possible?


You can use the List.addAll() method. It accepts a Collection as an argument, and your set is a Collection.


EDIT: as respond to the edit of the question.
It is easy to see that if you want to have a Map with Lists as values, in order to have k different values, you need to create k different lists.
Thus: You cannot avoid creating these lists at all, the lists will have to be created.

Possible work around:
Declare your Map as a Map<String,Set> or Map<String,Collection> instead, and just insert your set.