Java 関数型インターフェースのサンプル(Function)

Javaの関数型インターフェースのFunctionのサンプルです。

目次

説明 Functionインターフェース
サンプル クラスの場合
  匿名クラスの場合

Functionインターフェース

インターフェース public interface Function<T,R>
メソッド R apply(T t)
  • Functionは、関数という意味です。入力と出力があります。
  • applyメソッドは、引数があり、戻り値もあります。
  • FunctionのTはメソッドの引数の型で、Rはメソッドの戻り値の型です。
  • 以下は、OracleのJava8のFunctionインターフェースのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/function/Function.html

クラスの場合

クラスのサンプルです。

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;

public class Test1 {
	public static void main(String[] args) {
		
		List<Integer> c1 = new ArrayList<>(Arrays.asList(50,10,300));
		GetMessage1 g1 = new GetMessage1();
		List<Integer> list1 = g1.apply(c1);
	
		for (Integer a:list1) {
			System.out.println(a); //10 50 300
		}
	}
}
 class GetMessage1 implements Function<List<Integer>,List<Integer>>{
	@Override
    public  List<Integer> apply(List<Integer> c1) {
		Collections.sort(c1);
		return c1;
    }
}

6行目は、java.util.function.Functionインターフェースをimportしています。
20行目は、Functionインターフェースを実装しています。
最初のList<Integerは引数の型で次のList<Integerは戻り値の型です。
12行目は、applyメソッドです。引数と戻り値があります。
16行目は、数値が昇順にソートされて表示されます。

匿名クラスの場合

匿名クラスのサンプルです。

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;

public class Test1 {
	public static void main(String[] args) {
		
		List<Integer> c1 = new ArrayList<>(Arrays.asList(50,10,300));
		
		List<Integer> list1 = new Function<List<Integer>,List<Integer>>() {
			@Override
		    public  List<Integer> apply(List<Integer> list1 ) {
				Collections.sort(list1);
				return list1;
		    }
		}.apply(c1);
		
		for (Integer a:list1) {
			System.out.println(a); //10 50 300
		}
	}
}

6行目は、java.util.functionパッケージのFunctionインターフェースをimportしています。
13行目は、匿名クラスです。クラス名はありません。
19行目は、applyメソッドです。引数と戻り値があります。
19行目は、数値が昇順にソートされて表示されます。

関連の記事

Java ラムダ式のサンプル
Java 関数型インターフェースのサンプル(Consumer)
Java 関数型インターフェースのサンプル(Supplier)

△上に戻る