[解決済み] Collectors.toMap() keyMapper -- より簡潔な表現?
2022-03-07 05:54:36
質問
以下の関数パラメータについて、より簡潔な表現を考えています。
Collectors.toMap()
を呼び出します。
List<Person> roster = ...;
Map<String, Person> map =
roster
.stream()
.collect(
Collectors.toMap(
new Function<Person, String>() {
public String apply(Person p) { return p.getLast(); }
},
Function.<Person>identity()));
ラムダ式を使ってインライン化すればよさそうなものですが、コンパイルできるものが思いつきません。(私はラムダを使うのはかなり初めてなので、これはあまり驚きではありません)。
ありがとうございます。
-->更新しました。
受付回答にもあるように
Person::getLast
は私が探していたものであり、私が試したものです。しかし、Eclipse 4.3のBETA_8ナイトリービルドが問題でした -- それは間違っているとフラグを立てました。コマンドラインからコンパイルすると(投稿する前に行うべきでした)、それは動作しました。だから、eclipse.orgにバグを報告する時が来た。
ありがとうございます。
解決方法は?
ラムダを使えばいいんです。
Collectors.toMap(p -> p.getLast(), Function.identity())
または、もっと簡潔に言うと
メソッドリファレンス
を使って
::
:
Collectors.toMap(Person::getLast, Function.identity())
の代わりに
Function.identity
というように、単純に同等のラムダを使用することができます。
Collectors.toMap(Person::getLast, p -> p)
Netbeansを使用している場合、匿名クラスがラムダで置き換えられるときはいつでもヒントを得ることができます。
関連
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] java.io.IOException。DER長の短い読み取り
-
[解決済み] ラムダ式からプロパティ名を取得する
-
[解決済み】C++11のラムダ式って何?
-
[解決済み】なぜFunc<T>ではなくExpression<Func<T>を使うのですか?
-
[解決済み】Collectors.toMapでNullPointerExceptionが発生する。
-
[解決済み】ラムダ式は、実行されるたびにヒープ上にオブジェクトを作成するのか?
-
[解決済み] javaのラムダは1つ以上のパラメータを持つことができますか?
-
[解決済み] ラムダ式を使って要素が存在するかどうかをチェックするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] 文字列の巻き方
-
[解決済み】Collectors.toMapでNullPointerExceptionが発生する。