什么是Stream流式计算
集合、MySQL 本质都是存储东西的;
计算都应该交给流来操作!
/**
* 题目要求:一分钟内完成此题,只能用一行代码实现!
* 现在有5个用户!筛选:
* 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(6,"e",25);
//计算交给Stream流
//lambda表达式,链式编程,函数式接口,Stream流式计算
List<User> list = Arrays.asList(u1, u2, u3, u4, u5);
list.stream().
filter((u)->u.getId()%2==0).
filter((u)->u.getAge()>23).
map((u)->u.getName().toUpperCase()).
sorted((uu1,uu2)->uu2.compareTo(uu1)).
limit(1).
forEach(System.out::println);
System.out.println("==================================");
//简化
Arrays.asList(u1,u2,u3,u4,u5).
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((u)-> System.out.println(u));
System.out.println("==================================");
//再简化
Stream.of(u1,u2,u3,u4,u5).
filter(u->u.getId()%2==0).
filter(u->u.getAge()>23).
map(u->u.getName().toUpperCase()).
sorted((uu1,uu2)->uu2.compareTo(uu1)).
limit(1).
forEach(System.out::println);
}
}