消费型接口Consumer
- 消费型接口
- 接收一个输入,没有返回值
在stream流计算中 forEach() 接收一个消费型接口Consumer用于 遍历元素
/*** 消费型接口* 接收一个输入,没有返回值*/
public class demo01 {public static void main(String[] args) {//TODO 消费型接口,接收一个输入,没有返回值Consumer<String> consumer = new Consumer<String>() {@Overridepublic void accept(String str) {System.out.println(str);}};consumer.accept("dsada");//TODO 在流计算中 forEach() 接收一个消费型接口Consumer用于 遍历元素ArrayList<String> list = new ArrayList<>();list.stream().forEach(consumer);//lambda表达式Consumer<String> consumer1 = (str)->{System.out.println(str+"====");};consumer1.accept("dsadsa");}
}
函数形接口Function
- 函数形接口
- 接收一个类型的参数,返回一个类型的参数
在stream流计算的 map()方法中,map() 方法接收一个 Function 接口用于类型映射
/*** 函数形接口* 接收一个类型的参数,返回一个类型的参数*/
public class demo01 {public static void main(String[] args) {// 匿名内部类,// Function接口//TODO 两个泛型 接收一个类型的参数,返回一个类型的参数Function<String, String> function = new Function<String, String>() {@Overridepublic String apply(String str) {return str;}};//TODO 在流计算的 map()方法中,map() 方法接收一个 Function 接口用于类型映射ArrayList<String> list = new ArrayList<>();list.stream().map(function);System.out.println(function.apply("dsad"));//lambda表达式Function<String, String> function2 = (str)->{ return str;};System.out.println(function2.apply("dsad"));}
}
断定型接口Predicate
- 断定型接口
- 接收一个输入参数,返回一个布尔值
在stream流计算中 filter() 接收一个断定型接口Predicate用于过滤元素
/*** 断定型接口* 接收一个输入参数,返回一个布尔值*/
public class demo01 {public static void main(String[] args) {// TODO 断定型接口 接收一个输入参数,返回一个布尔值Predicate<String> StringPredicate = new Predicate<String>() {@Overridepublic boolean test(String str) {return str.isEmpty();}};//TODO 在流计算中 filter() 接收一个断定型接口Predicate用于过滤元素ArrayList<String> list = new ArrayList<>();list.stream().filter(StringPredicate);System.out.println(StringPredicate.test(""));}
}
供给型接口Supplier
- 供给型接口
- 没有参数,只有返回值
/*** 供给型接口* 没有参数,只有返回值*/
public class demo01 {public static void main(String[] args) {//TODO 没有参数,只有返回值Supplier<String> supplier = new Supplier<String>() {@Overridepublic String get() {return "1024";}};System.out.println(supplier.get());//lambda表达式Supplier<String> supplier1 = () -> "1024";System.out.println(supplier1.get());}
}