Java

ネストしたCollectionをflatmapで平坦化する例

投稿日:

概要

Java Goldの資格勉強をしていて、StreamのflatmapというメソッドでCollection等を平坦化(ネストした配列等を同階層の要素としてまとめること)の挙動で、3階層以上のネスト構造ではどのように振舞うかが気になったので調べてみました。

確認したこと

3階層のネストしたListをflatmapした場合

◆結論
 全てを平坦化はできず、1階層分のみ平坦化できる。

すべてを平坦化する方法

◆結論
 ネストしたCollectionを再帰的に処理するメソッドを用意することで、すべての要素を平坦化する。

まとめ

  • flatmapはネストした構造を平坦化できる。
  • 3階層以上にネストされた構造は、再帰的に処理することですべての要素を平坦化できる。

引用

Javaでストリームを使用してコンテナを平滑化する

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

ランキング評価する

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

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

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

【Java】Enumを使って変更に強いコーディングをする!

概要 仕事でコード値の判定が色んなところに散らばってしまった後に、コード値の定義を変更しなければいけなくなった状況が起こりました。 Enumで定義していれば変更箇所はEnum定義だけでよかったなぁ~と …

【Java】オブジェクト指向の練習題材(会計オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは3つのオブジェクトを作成していきます。 – 会計オブジェクト:会計金額の算出 – 請求書オブ …

【Java入門】Functionの使い方まとめ

概要 Function <T, R> apply(T)を関数メソッドに持つ関数型インタフェースです。 1つの引数を受け取って結果(R)を返します。   基本的な使い方 Functionイン …

【SpringSecurity】#1~ ログイン画面の実装(認証)

概要 SpringSecurityを導入してユーザ認証機能を実現します。 まずはログイン認証機能が使えるようになることを目標にしていますので、 本記事で解説する構成は最小限にとどめています。   準備 …

記事を探す

SpringFramworkの良書

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

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