java 8 - java.util.function.function例子

时间:2020-02-23 14:34:52  来源:igfitidea点击:

在本教程中,我们将看到关于java.util.function.function函数接口。

java.util.function.function是java.util.function包的一部分。
Java中有一些内置的函数接口。

如果函数接口与要求匹配,则可以使用的函数。

java.util.Function.Function是一个函数接口,它采用输入单参数T并返回结果R.

它具有如下抽象方法。

R apply(T t)

让我们在一个例子的帮助下了解。

Java 8 函数示例

package org.igi.theitroad.java8;
import java.util.function.Function;
 
public class java8FunctionExample {
	public static void main(String[] args)
	  {
	        Function<Integer,Double> functionSqrt = n -> Math.sqrt(n);
	        System.out.println("Square root of 49: "+functionSqrt.apply(49));
	        System.out.println("Square root of 68: "+functionSqrt.apply(68));
	  }
}

andThen函数

它是默认函数,返回一个组成的函数,首先将此函数应用于其输入,然后将其应用于结果。

例如:

package org.igi.theitroad.java8;
import java.util.function.Function;
 
public class java8FunctionExample {
	public static void main(String[] args)
	  {
	        Function<Integer,Double> functionSqrt = n -> Math.sqrt(n);
	        Function<Double,Double> functionDouble = n -> 2.0*n;
	        
	        double result=functionSqrt.andThen(functionDouble).apply(30);
	        System.out.println("Result with andThen: "+result);
	  }
}

compose函数

它是默认函数,返回一个组成的函数,首先将函数应用于其输入,然后将此函数应用于结果。

package org.igi.theitroad.java8;
import java.util.function.Function;
 
public class java8FunctionExample {
	public static void main(String[] args)
	  {
	        Function<Integer,Double> functionSqrt = n -> Math.sqrt(n);
	        Function<Double,Double> functionDouble = n -> 2.0*n;
	
	        double result2=functionDouble.compose(functionSqrt).apply(30);
	        System.out.println("Result with compose: "+result2);
	  }
}

使用java.util.Function.Function在流的MAP方法中

如果我们注意到流的MAP方法将函数作为输入占用,因为映射函数需要一个函数接口,它需要输入单个参数t并返回结果r和java。

util.function.function为流的地图方法提供了目的

<R> Stream<R>	map(Function<? super T,? extends R>mapper)