このコードを使用して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 個の異なるリストを作成する必要がある
ことは容易にわかります。したがって、これらのリストを作成することは避けられず、リストを作成する必要があります。Map
List
考えられる回避策:をまたはとして
宣言し、セットを挿入するだけです。Map
Map<String,Set>
Map<String,Collection>