[解決済み】Java8: HashMap<X, Y> から HashMap<X, Z> へ Stream / Map-Reduce / Collector を使って変換する。
2022-04-01 13:18:06
質問
単純なJavaのアプリケーションを変換する方法は知っています。
List
から
Y
->
Z
は、すなわち
List<String> x;
List<Integer> y = x.stream()
.map(s -> Integer.parseInt(s))
.collect(Collectors.toList());
さて、基本的に同じことをMapでやってみたい。
INPUT:
{
"key1" -> "41", // "41" and "42"
"key2" -> "42" // are Strings
}
OUTPUT:
{
"key1" -> 41, // 41 and 42
"key2" -> 42 // are Integers
}
に限定した解決策であってはならない。
String
->
Integer
. と同じように
List
の例では、任意のメソッド (またはコンストラクタ) を呼び出したいと思います。
どのように解決するのですか?
Map<String, String> x;
Map<String, Integer> y =
x.entrySet().stream()
.collect(Collectors.toMap(
e -> e.getKey(),
e -> Integer.parseInt(e.getValue())
));
リストのコードと比べると、かなりいい加減です。新しい
Map.Entry
の中にある
map()
を呼び出すと、その作業が
collect()
を呼び出します。
関連
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] Java 8 JDK を使用して、Iterable を Stream に変換する
-
[解決済み] 値のペアのJavaコレクション?(タプル?)
-
[解決済み】ストリームを使った地図作成で重複を無視する。
-
[解決済み】Java 8のOptionalをStream::flatMapで使用する。
-
[解決済み】Java8のラムダを使用してストリームを逆順に並べ替えるにはどうすればよいですか?
-
[解決済み] Java8ストリームの要素を既存のListに追加する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] java.io.IOException。DER長の短い読み取り