0
点赞
收藏
分享

微信扫一扫

JUC(7)四大函数式接口


文章目录

  • ​​1、四大函数式接口(必须掌握)​​
  • ​​1.1 function​​
  • ​​1.2 Predicate​​
  • ​​1.3 Consumer​​
  • ​​1.4 Supplier​​

1、四大函数式接口(必须掌握)

  • 1、lambda表达式
  • 2、函数式接口
  • 3、链式编程
  • 4、stream流式计算

函数式接口:只有一个方法的接口

@FunctionalInterface
public interface Runnable {
public abstract void run();
}

  • 超级多的FunctionalInterface
  • 简化编程模型、在新版本的框架底层大量应用
  • foreach(消费者类型的函数式接口)

JUC(7)四大函数式接口_ide


JUC(7)四大函数式接口_函数式接口_02

1.1 function

package com.function;

import java.util.function.Function;

/**
* Function 函数型接口、有一个输入参数,有一个输出
* 只要是函数式接口 就可以使用lambda表达式简化
*/
public class FunctionDemo {
public static void main(String[] args) {
Function function = new Function<String,String>(){
@Override
public String apply(String str) {
return str;
}
};

System.out.println(function.apply("hello world"));

}
}

lambda简化

package com.function;

import java.util.function.Function;

/**
* Function 函数型接口、有一个输入参数,有一个输出
* 只要是函数式接口 就可以使用lambda表达式简化
*/
public class FunctionDemo {
public static void main(String[] args) {
// Function function = new Function<String,String>(){
// @Override
// public String apply(String str) {
// return str;
// }
// };

Function<String,String> function = (str)->{return str;};

System.out.println(function.apply("hello world"));

}
}

1.2 Predicate

JUC(7)四大函数式接口_java_03


JUC(7)四大函数式接口_函数式接口_04

package com.function;

import java.util.function.Predicate;

/**
* 断定型接口:有一个输入参数,返回值只能是布尔值
*/
public class PredicateDemo {
public static void main(String[] args) {
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
// };

Predicate<String> predicate = (str)->{return str.isEmpty();};

System.out.println(predicate.test(""));
}
}

1.3 Consumer

JUC(7)四大函数式接口_java_05


JUC(7)四大函数式接口_java_06


举例子

package com.function;

import java.util.function.Consumer;

/**
* Consumer 消费性接口:只有输入,没有返回值
*/
public class ConsumerDemo {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String str) {
// System.out.println(str);
// }
// };
Consumer<String> consumer = (str)->{
System.out.println(str);
};

consumer.accept("hhh");
}
}

1.4 Supplier

JUC(7)四大函数式接口_ide_07


JUC(7)四大函数式接口_函数式接口_08


例子

package com.function;

import java.util.function.Supplier;

/**
* Supplier 供给型接口,没有参数,只有返回值
*/
public class SupplierDemo {
public static void main(String[] args) {
// Supplier<Integer> supplier = new Supplier<Integer>() {
// @Override
// public Integer get() {
// return 1024;
// }
// };
Supplier<Integer> supplier = ()->{return 1024;};

System.out.println(supplier.get());
}
}


举报

相关推荐

0 条评论