プログラミング Java

【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を使用する。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

ModelからBindingResultが消える原因と対処方法

環境 Java(SpringFramework) Thymeleaf 状況 更新画面でバリデーションエラーにより更新が失敗したというようなケースにおいて、 BuindingResultにFormのエラ …

【Java】画像ファイルをバイナリで比較する方法

  画像ファイルの比較 比較元ファイル 素材はPhotoACから拝借しました。 コピー元画像:PCを持つ女性 コピーしたファイルとの比較(True) コピー元ファイルをコピーしただけのファイ …

困った,男性

あなたが読み難いコードを書いてしまう理由

はじめに 読みやすいコードを書きたい人と願う方のために執筆しました。 誰もが良いコードを書きたいと願っているはずだからです。(と私は信じています) というもの、後で自分が読み直した時、誰かにレビューを …

【Javaサンプル】自動販売機を作成(Level1)

Javaの勉強用サンプルです。 テーマは自動販売機。 プログラミング初心者向けに書いています。   自動販売機を題材として選んだ理由 自社研修で行っている 自社研修で自動販売機を作成したので …

【JdbcTemplate】Queryの書き方(更新系)

  前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で説明していきます。 usersテーブル

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。