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<User> 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;
}
}