Java

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

投稿日:

概要

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

確認したこと

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

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

すべてを平坦化する方法

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

まとめ

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

引用

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

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

ランキング評価する

-Java
-,

執筆者:


comment

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

CAPTCHA


関連記事

【Java入門】プリミティブ型と参照型とは?

概要 Javaのデータ型にはプリミティブ型と参照型があります。 ここではそれぞれの型はどのようにデータを保持しているのか? また、どのような種類があるのか? について学んでいきます。   プリミティブ …

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

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

【Spring+Thymeleaf】HTMLの更新をビルドせずに反映させる方法

概要 Spring + Thymeleafの構成において、ビルド無しでHTMLの変更を反映する方法です。 前提 以下の構成で確認したものになります。 ・SpringBoot 2.6.4 ・Thymel …

オブジェクト指向とは何なのかを簡単に説明してみる

オブジェクト指向とは何なのか? これを私の理解を元に、ごくごく簡単に説明してみたいと思います。   オブジェクト指向とは? オブジェクト指向とは何かを説明するために、 「オブジェクト」と「指 …

【SpringBoot入門】#10~ 更新機能の実装

概要 既に登録済みの書籍情報を画面上で編集し、更新する処理を実装します。 更新した内容が反映されていることを確認するところまでを行います。   フロントエンド 更新情報のリクエスト edit.html …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

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

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