[解決済み】ストリームを使った地図作成で重複を無視する。
2022-03-26 18:47:32
質問
Map<String, String> phoneBook = people.stream()
.collect(toMap(Person::getName,
Person::getAddress));
私は
java.lang.IllegalStateException: Duplicate key
重複した要素が見つかった場合
マップに値を追加する際に、このような例外を無視することは可能でしょうか?
重複している場合は、その重複しているキーを無視して継続する必要があります。
どのように解決するのですか?
を使用することで可能です。
mergeFunction
のパラメータは
Collectors.toMap(keyMapper, valueMapper, mergeFunction)
:
Map<String, String> phoneBook =
people.stream()
.collect(Collectors.toMap(
Person::getName,
Person::getAddress,
(address1, address2) -> {
System.out.println("duplicate key found!");
return address1;
}
));
mergeFunction
は、同じキーに関連付けられた2つの値に対して操作する関数である。
adress1
は、要素を収集するときに遭遇した最初のアドレスに対応し
adress2
は2番目のアドレスに対応する。このラムダは、最初のアドレスを保持し、2番目のアドレスを無視することを指示するだけである。
関連
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み】Java8: HashMap<X, Y> から HashMap<X, Z> へ Stream / Map-Reduce / Collector を使って変換する。
-
[解決済み】ストリームを使ったBigDecimalsの足し算について
-
[解決済み】ストリームを使用して、オブジェクトのリストをtoStringメソッドから取得した文字列に変換する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] .lengthが解決できない、またはフィールドでない