skillup

技術ブログ

Java

StreamのMap処理

投稿日:2015年8月9日 更新日:

Javaのstreamですが知れば知るほどいろいろな機能がありますね。

基本的にプログラムって配列(コレクション含む)とオブジェクトの処理が中心になるので、配列の処理をいかにうまくできるかは非常に大事です。

Javaは当初、配列関連のライブラリが貧弱やなーとかおもっていたんですが、streamを調べてみるとすごくいろいろなことができてビックリ。

例えば下記のようなデータを区切り文字で一気につなげることができます。

これを下記のように変換したいとします。

上記のようなマップがあったとして下記のような変換で変えることができます。

Mapのなかに入っているオブジェクトはname,age,prefのみとし、このオブジェクトをPersonとします。

Map<String,List<Person>>[personPrefListMap]を Map<String,String>[personPrefList]にしたいとします。

この処理がこれだけの行数でかけてしまうのが驚きです。

本来は1行でかけるのでしょうが見やすさと自分のスキルを考えて今は上のように書いておきました。

ともかく便利すぎです・・・

ちなみに下記にはもっと詳しい解説があります

Java Streamサンプル

-Java
-, ,

執筆者:


comment

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

関連記事

no image

Optionalについて その2

JavaEEブログなはずなのに11月はcakeのことばかり書いていて、Javaのことすら書いていないですね(汗) 今日はOptionalについて書きます。 いまいち使い方がわからなかったんですが、自分 …

no image

CSVの入出力に関して

業務でCSVの入出力と格闘中。 まあよくある頻出の作業だったりするんですが、自前でやるとなかなか面倒です。 面倒なポイントとしては クオートのエスケープ カンマのエスケープ ヘッダーとの結合 ですかね …

no image

新アプリの本番環境デプロイについて

新しく作ったWEBアプリを本番配置しようとしたんですが、何度もやっているはずの処理がいざやろうとするといろいろと手間取ってしまい、1時間近くかかりました。 容量悪いなーと思いつつ、こういった行為はなる …

no image

型情報の取得・活用について

Javaで抽象度の高い実装を行うときに必要となる型情報の活用法について。 できるとできないとでプログラムの応用範囲が変わってくるのでメモっときます。 こちらのエントリーと合わせて読むといいと思います。 …

no image

日付がらみの処理に関して(MySQL&Java)

MySQL触りだして3年ぐらいたつんですがいまだに整理できないことが多いです。(特に日付がらみ) ちょっとJavaのネタと合わせて整理しておこうかなーと思います。 Contents1 MySQLの日付 …

アーカイブ