Java

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

投稿日:

概要

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

確認したこと

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

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

すべてを平坦化する方法

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

まとめ

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

引用

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

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

ランキング評価する

-Java
-,

執筆者:


comment

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

CAPTCHA


関連記事

SpringでNotNullなどのバリデーションが効かないときの対処法

状況 フィールドに入っている値は空文字なのに、 @NotNull, @NotEmpty, @NotBlankでエラーとして検知されない。 (BindingResultでhasErroe=0件となる) …

SingletonパターンをJUnitでテストする

シングルトンパターンはインスタンスが1つであることを保証する設計です。 Junitを使って、本当に1つだけなのかを検証してみます。 またその手順をテスト駆動開発に従った手順(Red→Green→リファ …

【JdbcTemplate】Queryの書き方(SELECT文)

JdbcTemplateでQueryを書く方法です! (SELECT文で、1件・複数件を取得するケース)   前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で …

【Spring+Thymeleaf】リクエストパラメーターをControllerで受け取る方法

概要 Spring+Thymeleafにおいて、リクエストパラメーターをControllerで受け取るパターンを紹介します。 リクエストパラメーターのパターンは以下の通りです。 ・単一(inputタグ …

【SpringSecurity】#3~ 独自のログイン画面

概要 オリジナルのログイン画面を実装する方法です。 以下の内容になっています。 ログイン用のHTMLを用意する。 Controllerにログインの遷移先を定義する。 SecurityConfigクラス …

SpringFramworkの良書

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

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