■ ラムダ式
* Java1.8から導入できる
■ 構文
[1] 引数1つ式1つ
引数 -> 式
[2] 引数2つ以上、式1つ
(引数1[,引数2]・・・) -> 式
[3] 引数1つ式複数
引数 -> { 処理 return 値; }
[4] 引数2つ以上式複数
(引数1[,引数2]・・・) -> { 処理 return 値; }
■ サンプル
* とりあえず、サンプルを作って少しでも感じを掴んでみる
Sample01Lambda.java
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Sample01Lambda { public static void main(String[] args) { String[] values = {"A001", "B001", "AB001", "BA001"}; List<String> list = Arrays.asList(values); List<String> results = list.stream().filter(x -> x.startsWith("B")).collect(Collectors.toList()); for (String result : results) { System.out.println("Result : " + result); } } }
出力結果
Result : B001 Result : BA001
■ 補足:うまく動かない場合
* 「{ ... }」で囲って、ログ出力してみる
例
修正前... = list.stream().filter(x -> x.startsWith("B"))...修正後
... = list.stream().filter(x -> { boolean isStartsWithB = x.startsWith("B"); System.out.println("Logout : " + isStartsWithB); return isStartsWithB; })...
参考文献
http://www.slideshare.net/zoetrope/java8-lambdaandstreamhttp://www.atmarkit.co.jp/ait/articles/1405/20/news032_2.html
http://www.atmarkit.co.jp/ait/articles/1405/20/news032_3.html
構文
http://oreit.blog.fc2.com/blog-entry-35.htmlhttp://builder.japan.zdnet.com/sp_oracle/weblogic/35054414/3/