Stream流式计算,链式编程
什么是stream流式计算?
大数据包括(存储+计算)
集合,mysql这些是用来存储的,而计算是用stream流式的
题目案例:只用一行代码,完成计算这些操作
操作:
第一步:将我们的数据变为一个集合(Arrays.asList())存储
第二步:查看j.u.stram包下的这些流。流里面的方法的参数大都是函数式接口
第三步:使用stream流中的集合.stream()(这样就变为一个Stream对象了).filter()+forEach()输出为偶数的数据
参数为断定型接口
第四步:同理用filter()过滤年龄>23的
第五步:使用.map()获取名字让后用toUpperCase变为大写
第六步:倒着排序(.sort(两个参数(比较排序)))
正序排列:(uu1比uu2)
倒序排列了:(uu2比uu1)
最后一步(分页咯limit)
- package org.example.stream;
-
-
-
- import java.util.Arrays;
-
- import java.util.List;
-
-
-
- public class TestStream {
-
- public static void main(String[] args) {
-
- User user1=new User(1,"a",21);
-
- User user2=new User(2,"b",22);
-
- User user3=new User(3,"c",23);
-
- User user4=new User(4,"d",24);
-
- User user5=new User(6,"e",25);
-
- //先变为集合存储
-
- List
list= Arrays.asList(user1,user2,user3,user4,user5); -
- //将集合变为stream对象,然后用流计算
-
- list.stream()
-
- .filter(u->{return u.getId()%2==0;})
-
- .filter(u->{return u.getAge()>23;})
-
- .map(u->{return u.getName().toUpperCase(); })
-
- .sorted((uu1,uu2)->{return uu1.compareTo(uu2);})
-
- .limit(1)
-
- .forEach(System.out::println);
-
- }
-
- }
-
- class User{
-
- public int getId() {
-
- return id;
-
- }
-
-
-
- public void setId(int id) {
-
- this.id = id;
-
- }
-
-
-
- public String getName() {
-
- return name;
-
- }
-
-
-
- public void setName(String name) {
-
- this.name = name;
-
- }
-
-
-
- public int getAge() {
-
- return age;
-
- }
-
-
-
- public void setAge(int age) {
-
- this.age = age;
-
- }
-
-
-
- private int id;
-
- private String name;
-
- private int age;
-
-
-
- public User() {
-
- }
-
-
-
- @Override
-
- public String toString() {
-
- return "User{" +
-
- "id=" + id +
-
- ", name='" + name + '\'' +
-
- ", age=" + age +
-
- '}';
-
- }
-
-
-
- public User(int id, String name, int age) {
-
- this.id = id;
-
- this.name = name;
-
- this.age = age;
-
- }
-
- }
-
-
-