Javaでラムダ式を使う3

前回の記事ではStreamのforEach()メソッドにラムダ式を渡してリストの処理をする方法について記した。
この記事ではさらにStreamを使うことでどんなことができるかを紹介していこうと思う。

filter()メソッド

このメソッドはメソッド名からも分かるように、Listの中身にフィルターをかけて処理をする。
引数にはラムダ式で除外する条件を渡して利用する。
今回は要素として1~10の数字を保持したListと、6個の文字列を保持したListを作成して利用していこうと思う。

integer_arrayの中から偶数の数字だけ抜き出したい場合はどのように書くかというと

このようになる。
偶数のみのStreamを取得したい場合はforEach()メソッドは呼び出す必要はない。
今回は実行結果を出力するために、forEach()で出力処理を加えた。

では今度はString型の文字列を扱ってみよう。
{“A100”, “A200”, “B100″,”C100”, “A300”, “C200”}
これらの要素の中から頭文字が”A”のものだけを取り出したい場合は

こんな感じになる。
substring()メソッドで一文字抜き出してequals()メソッドで”A”と一致するかで判定しているが、もっとシンプルにstartsWith()メソッドを利用して

このように書いても結果は同じになる。

DTOなどのBeanでの利用

これらはもちろんオブジェクトに対しても利用することができる。
Employeeという名前と給料を格納するBeanを作る。

メインメソッドの中で5人ぶんのオブジェクトを生成して値を格納する。

この中から頭文字がAの人の名前と給料が知りたい、となった場合は

こんな使い方もできる。

次回はこの続きから。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする