[解決済み] Java 8 List<V> を Map<K, V> に変換する。
2022-03-20 08:28:30
質問
Java 8のストリームとラムダを使って、オブジェクトのリストをMapに変換したいのですが、どうすればいいですか?
Java 7以下ではこのように書きます。
private Map<String, Choice> nameMap(List<Choice> choices) {
final Map<String, Choice> hashMap = new HashMap<>();
for (final Choice choice : choices) {
hashMap.put(choice.getName(), choice);
}
return hashMap;
}
Java 8とGuavaを使えば簡単に実現できるのですが、Guavaを使わずに実現する方法を教えてほしいです。
グアバで。
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, new Function<Choice, String>() {
@Override
public String apply(final Choice input) {
return input.getName();
}
});
}
そして、Java 8のラムダを使ったGuava。
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, Choice::getName);
}
解決方法は?
ベースは
Collectors
ドキュメント
というようにシンプルです。
Map<String, Choice> result =
choices.stream().collect(Collectors.toMap(Choice::getName,
Function.identity()));
関連
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
HttpClientがGZIP形式でない場合の対処法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
プロジェクトの依存関係を解決できなかった 解決
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
このラインで複数のマーカーを解決する方法