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

mavenでJavadoc出力

Netbeansでプロジェクトから右クリックでjavadocの生成はできますが、実はmavenでビルドするときにJavadocを生成できます。 ただ出力するだけではなくてパラーメータをいろいろとセット …

no image

Javaでのメール送信プログラム

Javaでメール送信のプログラムがあったんで、メモ。 SMTPの認証とかはせず一番簡単なパターンです。 ケースでいうとサーバーA、サーバーBがあり下記のようなケースです。 A メールサーバー(smtp …

no image

例外処理について

Javaの例外処理について書きます。 自分はPHPメインでやってきましたので、この例外についてはうろ覚えでした。 PHPだと例外処理はあるんですが、まああんまり使わなかったり、理解がいい加減でもなんと …

no image

BeanValidationの動的メッセージ出力について

JSF+ManagedBeanでは基本的にbeanValidationを使ってバリデーションを行い、エラーメッセージなどはプロパティファイルで管理するのが一般的です。 アノテーションなどを付与してあげ …

no image

CSVの入出力に関して

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

アーカイブ