Java 8 Lambda式の異なる表現
更新されたjava 8で最も注目されているのはLambda式ですが、ここではLambda式のいくつかの表現形式を簡単に紹介します
1.標準表現
ここでは主に3つの部分から構成されています:1)パラメータmとn,使用,分離2)->3)1つの式または文ブロックからなる1つのボディ
2.パラメータタイプ推定可能形式
コンテキストからパラメータタイプを推定できる場合は、式ではパラメータタイプを省略できます.
3.複数行で表されるLambda式
コードが1行に書き込めない場合は、{}を使用して複数行のコードを含めることができます.この場合、{}に含まれるコードには表示される戻り値があるはずです.
Output:
4.単一パラメータLambda式
ここではJava 8のストリームプログラミングを利用しています.タイプを推定できる場合は、lambda式のパラメータカッコを省略して、単一パラメータを直接使用できます.
5.メソッド参照
4の式は、この方法の参照形式にも書くことができます.
6.パラメータなしLambda式
1.標準表現
String[] arr = {"program", "creek", "is", "a", "java", "site"};
Arrays.sort(arr, (String m, String n) -> Integer.compare(m.length(), n.length()));
System.out.println(Arrays.toString(arr));
ここでは主に3つの部分から構成されています:1)パラメータmとn,使用,分離2)->3)1つの式または文ブロックからなる1つのボディ
2.パラメータタイプ推定可能形式
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Arrays.sort(arr, (m, n) -> Integer.compare(m.length(), n.length()));
System.out.println(Arrays.toString(arr));
コンテキストからパラメータタイプを推定できる場合は、式ではパラメータタイプを省略できます.
3.複数行で表されるLambda式
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Arrays.sort(arr, (String m, String n) -> {
if (m.length() > n.length())
return -1;
else
return 0;
});
System.out.println(Arrays.toString(arr));
コードが1行に書き込めない場合は、{}を使用して複数行のコードを含めることができます.この場合、{}に含まれるコードには表示される戻り値があるはずです.
Output:
[program, creek, java, site, is, a]
4.単一パラメータLambda式
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Stream stream = Stream.of(arr);
stream.forEach(x -> System.out.println(x));
ここではJava 8のストリームプログラミングを利用しています.タイプを推定できる場合は、lambda式のパラメータカッコを省略して、単一パラメータを直接使用できます.
5.メソッド参照
Stream stream = Stream.of(arr);
stream.forEach(System.out::println);
4の式は、この方法の参照形式にも書くことができます.
6.パラメータなしLambda式
() -> {for(int i=0; i<10; i++) doSomthing();}