JUC并发编程学习笔记(十二)Stream流式计算
Stream流式计算
什么是Stream流式计算
大数据:存储+计算
集合、MySql这些的本质都是存储东西的;
计算都应该交给流来操作!
一个案例说明:函数式接口、lambda表达式、链式编程、Stream流式计算
package org.example.stream;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
/*
* 题目要求:一分钟内完成此题 只能用一行代码
* 现在有五个用户!筛选:
* 1、id必须是偶数
* 2、年龄名必须大于23岁
* 3、用户名转换为大写字母
* 4、用户名字母倒着排序
* 5、只输出一个用户!!
* */
public class Test {
public static void main(String[] args) {
User u1 = new User(1, "a", 21);
User u2 = new User(2, "b", 22);
User u3 = new User(3, "c", 23);
User u4 = new User(4, "d", 24);
User u5 = new User(5, "e", 25);
User u6 = new User(6, "f", 26);
// 集合就是存储
List<User> users = Arrays.asList(u1, u2, u3, u4, u5, u6);
// 计算交给Stream
/*
*新时代程序员:lambda表达式、链式编程、函数式接口、Stream流式计算
* */
users.stream().filter(u -> {
return (u.getId() % 2 == 0);
}).filter(u -> {
return (u.getAge() > 23);
})
.map(u -> {
return u.getName().toUpperCase();//转换大写
}).sorted((uu1, uu2) -> {
return uu2.compareTo(uu1);//比较转换
}).limit(1).forEach(System.out::println);
}
}