新しいリストを作成せずにセットをリストに変換する 質問する

新しいリストを作成せずにセットをリストに変換する 質問する

このコードを使用してSetを に変換しますList:

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

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

ループの各反復で新しいリストを作成しないようにしたいのですが、それは可能ですか?

ベストアンサー1

あなたはリスト.addAll()メソッド。引数としてコレクションを受け取り、セットはコレクションです。

List<String> mainList = new ArrayList<String>();
mainList.addAll(set);

編集:質問の編集に応答します。 sを値として持つ a が必要な場合、k 個の異なる値を持つためには、k 個の異なるリストを作成する必要がある
ことは容易にわかります。したがって、これらのリストを作成することは避けられず、リストを作成する必要があります。MapList

考えられる回避策:をまたはとして
宣言し、セットを挿入するだけです。MapMap<String,Set>Map<String,Collection>

おすすめ記事