JAVA四大内置核心函数式接口和Stream流式计算干货分享

Posted 艾编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA四大内置核心函数式接口和Stream流式计算干货分享相关的知识,希望对你有一定的参考价值。

经过一轮面试问题,脑子嗡嗡的,那经过上节课线程池,有没有醍醐灌顶的感觉,接着我们继续,给大家分享精彩的课程,详细掌握JUC并发编程,还记得第一节课老师课堂里讲到的“学了整个JUC并发编程课程,你将收获什么”,来大声告诉我!


记住了吗,涨薪、涨薪、涨薪;重要事情说三遍


本节课会为大家分享四大函数式接口和Stream流式计算课程


12、四大函数式接口

四大函数式接口


JAVA四大内置核心函数式接口和Stream流式计算干货分享

JAVA四大内置核心函数式接口和Stream流式计算干货分享

     函数型接口,有一个输入,有一个输出 

JAVA四大内置核心函数式接口和Stream流式计算干货分享

package com.coding.function4;import java.util.function.Function;public class Demo01 {public static void main(String[] args) {// new Runnable(); ()-> {}//// Function<String,Integer> function = new Function<String,Integer>() {// @Override // 传入一个参数,返回一个结果// public Integer apply(String o) {// System.out.println("into");// return 1024;// }// };// 链式编程、流式计算、lambda表达式Function<String,Integer> function = s->{return s.length();};System.out.println(function.apply("abc"));}}

     断定型接口,有一个输入参数,返回只有布尔值。

JAVA四大内置核心函数式接口和Stream流式计算干货分享

package com.coding.function4;
import java.util.function.Predicate;
public class Demo02 { public static void main(String[] args) {// Predicate<String> predicate = new Predicate<String>(){// @Override// public boolean test(String o) {// if (o.equals("abc")){// return true;// }// return false;// }//// };
Predicate<String> predicate = s->{return s.isEmpty();}; System.out.println(predicate.test("abced")); }}

     消费型接口,有一个输入参数,没有返回值

JAVA四大内置核心函数式接口和Stream流式计算干货分享

package com.coding.function4;
import java.util.function.Consumer;
public class Demo03 { public static void main(String[] args) { // 没有返回值,只能传递参数 消费者// Consumer<String> consumer = new Consumer<String> () {// @Override// public void accept(String o) {// System.out.println(o);// }// };
Consumer<String> consumer =s->{System.out.println(s);}; consumer.accept("123");
// 供给型接口 只有返回值,没有参数 生产者
}}

     供给型接口,没有输入参数,只有返回参数

package com.coding.function4;
import java.util.function.Supplier;
public class Demo04 { public static void main(String[] args) {// Supplier<String> supplier = new Supplier<String>() {// @Override// public String get() {// return "aaa";// }// };
Supplier<String> supplier = ()->{return "aaa";}; System.out.println(supplier.get()); }}

13、Stream流式计算

Stream流式计算

效率!

流(Stream)到底是什么呢?

数据库:保存数据 + SQL操作

数据就是数据,计算交给Stream!

==集合就是数据,Stream管理计算==

代码验证

package com.coding.stream;
import java.util.Arrays;import java.util.List;
/** * 一下数据,进行操作筛选用户:要求:一行代码做出此题,时长1分钟! * 1、全部满足偶数ID * 2、年龄都大于24 * 3、用户名转为大写 * 4、用户名字母倒排序 * 5、只能输出一个名字 */public class StreamDemo { public static void main(String[] args) { User u1 = new User(11, "a", 23); User u2 = new User(12, "b", 24); User u3 = new User(13, "c", 22); User u4 = new User(14, "d", 28); User u5 = new User(16, "e", 26);
// 集合管理数据 List<User> list = Arrays.asList(u1, u2, u3, u4, u5); // 计算交给Stream // 过滤 filter // 映射 map // 排序, sort // 分页 limit list.stream() .filter(u->{return u.getId()%2==0;}) .filter(u->{return u.getAge()>24;}) .map(u->{return u.getUsername().toUpperCase();}) .sorted((o1,o2)->{return o2.compareTo(o1);}) .limit(1) .forEach(System.out::println);
// 泛型、注解、反射 // 链式编程 + 流式计算 + lambda表达式
}

end


以上是关于JAVA四大内置核心函数式接口和Stream流式计算干货分享的主要内容,如果未能解决你的问题,请参考以下文章

Java四大内置核心函数式接口

java8中内置的四大核心函数式接口

5. Java8新特性_四大内置核心函数式接口

java四大函数式接口(重点,简单)

jdk1.8新特性——四大内置核心函数式接口

Stream流式编程详解