1. ホーム
  2. java

[解決済み] リストを新規に作成せずにセットをリストに変換する

2022-03-17 20:47:25

質問

このコードを使って SetList :

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);
}

ループの各反復で新しいリストを作成するのを避けたい。それは可能でしょうか?

どのように解決するのですか?

を使用することができます。 リスト.addAll() メソッドがあります。これは引数としてCollectionを受け取り、セットはCollectionになります。

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

EDITです。 を、質問の編集に対応させる。
を持たせたい場合は、簡単にわかると思います。 MapList を値とする場合、k個の異なる値を持つためには、k個の異なるリストを作成する必要があります。
このように このリストを作らないということは一切できない、リストは作らなければならない。

可能な回避策
を宣言してください。 MapMap<String,Set> または Map<String,Collection> の代わりに、セットを挿入してください。