今回は、「ラムダ式(使用例)―汎用的な関数型インターフェース―」です。
ラムダ式の使用例について見てみましょう。
 ラムダ式は、別のメソッドに処理を渡すことが基本的な使い方です。
このとき、よく使われるのが汎用的な関数型インターフェース(Function,Consumer,Predicate,Supplier)です。
 これらの使い方を見てみましょう。
■動画はこちら
■動画で使用しているソースコード
ソートでの使用例
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class SortTest {     public static void main(String[] args) {         ArrayList<String> list = new ArrayList<String>();         list.add("b");         list.add("a");         Comparator<String> c = (String o1, String o2) -> { return o1.compareTo(o2); };         Collections.sort(list, c);         for(int i=0 ; i<list.size() ; i++) {             System.out.println(list.get(i));         }     } } | 
Functionインターフェースの使用例
 ※「String str = f.apply(“こんにちは”);」以降の行を直接書くことはあまりありませんが、サンプルの都合上書いてあります。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.function.Function; public class FunctionTest {     public static void main(String[] args) {         //かぎかっこを付けて、文字列を整形するFunction         Function<String,String> f = (String s) -> { return "「" + s + "」"; };         //文字列をFunctionで整形         String str = f.apply("こんにちは");         //整形した文字列を出力         System.out.println(str);     } } | 
Consumerインターフェースの使用例
 ※「c.accept(“こんにちは”);」以降の行を直接書くことはあまりありませんが、サンプルの都合上書いてあります。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.util.function.Consumer; public class CousumerTest {     public static void main(String[] args) {         //文字列を出力するConsumer         Consumer<String> c = (String s) -> { System.out.println(s); };         //文字列をConsumerで出力         c.accept("こんにちは");     } } | 
Predicateインターフェースの使用例
 ※「boolean b = f.test(“こんにちは”);」以降の行を直接書くことはあまりありませんが、サンプルの都合上書いてあります。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.util.function.Predicate; public class PredicateTest {     public static void main(String[] args) {         //文字列が「こんにちは」かどうか判定するPredicate         Predicate<String> f = (String s) -> {             if(s.equals("こんにちは")) {                 return true;             } else {                 return false;             }         };         //文字列が「こんにちは」かどうか判定         boolean b = f.test("こんにちは");         //判定結果を出力         System.out.println("判定結果:" + b);     } } | 
Supplierインターフェースの使用例
 ※「String str = s.get();」以降の行を直接書くことはあまりありませんが、サンプルの都合上書いてあります。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.function.Supplier; public class SupplierTest {     public static void main(String[] args) {         //文字列を提供するSupplier         Supplier<String> s = () -> { return "こんにちは"; };         //文字列を取得         String str = s.get();         //取得した文字列を出力         System.out.println(str);     } } | 














