-
forEachメソッドを使用する方法: リストの要素を1つずつ取り出し、マップのキーと値のペアとして追加します。
List<String> list = Arrays.asList("apple", "banana", "cherry"); Map<String, Integer> map = new HashMap<>(); list.forEach(item -> map.put(item, item.length())); System.out.println(map);
出力結果:
{apple=5, banana=6, cherry=6}
-
Stream APIを使用する方法: ストリームを介してリストの要素を処理し、
Collectors.toMap()
メソッドを使用してマップに変換します。List<String> list = Arrays.asList("apple", "banana", "cherry"); Map<String, Integer> map = list.stream() .collect(Collectors.toMap(item -> item, item -> item.length())); System.out.println(map);
出力結果:
{apple=5, banana=6, cherry=6}
-
Stream APIとメソッド参照を使用する方法:
Collectors.toMap()
メソッドにメソッド参照を使用して、より短くコードを記述することもできます。List<String> list = Arrays.asList("apple", "banana", "cherry"); Map<String, Integer> map = list.stream() .collect(Collectors.toMap(Function.identity(), String::length)); System.out.println(map);
出力結果:
{apple=5, banana=6, cherry=6}
上記のコード例では、List<String>
型のリストをMap<String, Integer>
型のマップに変換しています。リストの要素がマップのキーになり、各要素の長さがマップの値になります。任意の型のリストや異なるマップの要件に合わせてコードを調整することができます。
このような方法を使用すると、Java 8の新機能であるラムダ式やストリームAPIを活用して、効率的にリストからリストのマップへの変換ができます。