Java

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

投稿日:

概要

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

確認したこと

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

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

すべてを平坦化する方法

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

まとめ

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

引用

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

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

ランキング評価する

-Java
-,

執筆者:


comment

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

CAPTCHA


関連記事

【JPA】リレーションの無いエンティティをJPQLで結合する

概要 @ManyToOneや@OneToManyといったリレーションをエンティティに設定していないまたは設定できない状況にあるが、結合した結果を取得したいという状況を想定しています。 方法としては「J …

Jacksonで日付がずれる場合、Timezone設定を直す

現象 JacksonでCSV出力する際、日付がズレて出力される。   原因 タイムゾーンの設定がTokyo/Asiaになっていない。   対策 application.proper …

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

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは2つのオブジェクトを作成していきます。 成績オブジェクト:教科と点数などを保持 生徒オブジェクト:氏名と成績を保持 …

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

概要 Consumer<T>は消費者と呼ばれる関数型インターフェースで、acceptメソッドを持ちます。 消費者というだけあって戻り値がありません。 また、引数はT型を1つとります、   …

Springでバリデーションがimportされていないときの対処法

状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

SpringFramworkの良書

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

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