【Java】MapをStreamで処理する方法 7選!

当ページのリンクには広告が含まれています。
目次

概要

【Java】ListをStreamで処理する方法 7選!
【Java】SetをStreamで処理する方法 7選!
に続き、Map編です。

Mapをstreamで扱う場合、entrySetまたはKeySetでSetビューを返してかstreamを呼ぶ必要があります。

また、HashSetと同様にHashMapは順序が保証されていないため、最初から順序を保証しておきたい場合はLinkedHashMapを使う必要があります。

実装例は、Setの時と同様によく使うであろうHashMapで解説していきます。
 

実装例

特定の要素のみを取得する

中間処理:カテゴリーが”玩具”だけのProductに絞り込みます。
終端処理:HashMapに変換して結果を返します。

 

合計を算出する

中間処理:IntStreamに変換します。
終端処理:合計した結果を返します

 

並べ替えた結果を取得する(昇順)

中間処理:金額の昇順で並び替える。(テスト用に最初の1件だけ取得)
終端処理:LinkedHashMapに変換して結果を返します。

 

並べ替えた結果を取得する(降順)

中間処理:金額の降順で並び替える。(テスト用に最初の1件だけ取得)
終端処理:LinkedHashMapに変換して結果を返します。

 

最初の要素を取得する

中間処理:Keyの昇順で並び替える。
終端処理:最初の1件を返します。

 

最後の要素を取得する

中間処理:Keyの降順で並び替える。
終端処理:最初の1件を返します。

 

中間処理:Formatterで変換した文字列を生成する。
終端処理:Listに変換した結果を返します。

 

まとめ

  • MapはentrySetまたはkeySetでSetビューを返してからStreamメソッドを呼び出す。
  • HashMapもHashSetと同様に順序が保証されていないので、最初から順序を保証する必要がある場合はLinkedHashMapを使用する。

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次