プログラミング 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


関連記事

【Java】ArrayListの最長文字列を取得する簡単な方法

(追記)2020/08/19 1. Listが空の場合(NoSuchElementException)に対応しました。 2. Nullが含まれていた場合、空文字として扱うように修正しました。 Arra …

オブジェクト指向でじゃんけんを作ってみる

最近、プログラム自体を書いていない時間を多いので、再勉強がてら少しコードを書いてみました。 何を作ったか? テーマ:じゃんけん(1対1) 言語:Java OOPで考慮したこと ・ゲームを管理するコント …

【SpringBoot入門】#1~ 開発環境を準備しよう(IDE)

想定読者 SpringBootを始めて学ぶ方   IDE(Eclipse) IDEにはEclipse以外にもNetBeansやIntelliJがあります。 好みによりますので使いやすいものを …

【Bootstrap】ログイン画面をデザインしよう!

概要 【SpringSecurity】#3~ 独自のログイン画面でシンプルな独自のログイン画面を実装しました。 これに、Bootstrapでデザインを施していきます。 Bootstrapのサンプルを基 …

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

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

記事を探す

SpringFramworkの良書

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

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