什么是Stream流式计算
大数据: 存储+计算
集合、Mysql本质就是存储东西的;
计算都应该交给流来操作!
练习一道题:
- 题目要求:一分钟完成此题,只能用一行代码实现!
- 现在由6个用户!筛选:
- 1、ID 必须是偶数
- 2、年龄必须大于22岁
- 3、用户名转为大写字母
- 4、用户名字母倒着排序
- 5、只输出一个用户!
package stream;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
/**
* 题目要求:一分钟完成此题,只能用一行代码实现!
* 现在由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(5, "e", 25);
User u6 = new User(6, "f", 26);
//集合就是存储
List<User> list = Arrays.asList(u1, u2, u3, u4, u5,u6);
//计算交给Stream流
list.stream()
.filter((u)->{return u.getId()%2==0;})
.filter((u)->{return u.getAge()>22;})
.map((u)->{return u.getName().toUpperCase();})
.sorted((uu1,uu2)->{return uu2.compareTo(uu1);})
.limit(1)
//.forEach(System.out::println);
.forEach((n)->{
System.out.println(n);
});
// 三种等价操作
/*
for (Object n : list) { System.out.println(n); }
list.forEach(n -> System.out.println(n));
list.forEach(System.out::println);*/
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
class User {
private int id;
private String name;
private int age;
}