• 26、Stream流式计算,链式编程


    Stream流式计算,链式编程

     

    什么是stream流式计算?

    大数据包括(存储+计算)

    集合,mysql这些是用来存储的,而计算是用stream流式的

    题目案例:只用一行代码,完成计算这些操作

     

    操作:

    第一步:将我们的数据变为一个集合(Arrays.asList())存储

     

    第二步:查看j.u.stram包下的这些流。流里面的方法的参数大都是函数式接口

     

     

     

    第三步:使用stream流中的集合.stream()(这样就变为一个Stream对象了).filter()+forEach()输出为偶数的数据

     

    参数为断定型接口

     

    第四步:同理用filter()过滤年龄>23的

     

     

    第五步:使用.map()获取名字让后用toUpperCase变为大写

     

     

    第六步:倒着排序(.sort(两个参数(比较排序)))

     

     

    正序排列:(uu1比uu2)

     

     

    倒序排列了:(uu2比uu1)

     

     

    最后一步(分页咯limit)

     

    1. package org.example.stream;
    2. import java.util.Arrays;
    3. import java.util.List;
    4. public class TestStream {
    5.     public static void main(String[] args) {
    6.         User user1=new User(1,"a",21);
    7.         User user2=new User(2,"b",22);
    8.         User user3=new User(3,"c",23);
    9.         User user4=new User(4,"d",24);
    10.         User user5=new User(6,"e",25);
    11.         //先变为集合存储
    12.         List list= Arrays.asList(user1,user2,user3,user4,user5);
    13.         //将集合变为stream对象,然后用流计算
    14.         list.stream()
    15.                 .filter(u->{return u.getId()%2==0;})
    16.                 .filter(u->{return u.getAge()>23;})
    17.                 .map(u->{return u.getName().toUpperCase(); })
    18.                 .sorted((uu1,uu2)->{return uu1.compareTo(uu2);})
    19.                 .limit(1)
    20.                 .forEach(System.out::println);
    21.     }
    22. }
    23. class User{
    24.     public int getId() {
    25.         return id;
    26.     }
    27.     public void setId(int id) {
    28.         this.id = id;
    29.     }
    30.     public String getName() {
    31.         return name;
    32.     }
    33.     public void setName(String name) {
    34.         this.name = name;
    35.     }
    36.     public int getAge() {
    37.         return age;
    38.     }
    39.     public void setAge(int age) {
    40.         this.age = age;
    41.     }
    42.     private int id;
    43.     private String name;
    44.     private int age;
    45.     public User() {
    46.     }
    47.     @Override
    48.     public String toString() {
    49.         return "User{" +
    50.                 "id=" + id +
    51.                 ", name='" + name + '\'' +
    52.                 ", age=" + age +
    53.                 '}';
    54.     }
    55.     public User(int id, String name, int age) {
    56.         this.id = id;
    57.         this.name = name;
    58.         this.age = age;
    59.     }
    60. }

  • 相关阅读:
    初级篇—第八章精讲MySQL数据类型
    【模电实验】【验证性实验——单管共发射极放大电路实验】
    微服务7:通信之RPC
    Linux系统常用的工具
    猿创征文|云原生|kubernetes二进制1.18单master扩展为多master
    1623. 三人国家代表队
    将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent
    [附源码]SSM计算机毕业设计成都团结石材城商家协作系统JAVA
    用了这跨操作系统远控软件,我再也不出差了
    计算机毕业设计SSM电影院购票系统【附源码数据库】
  • 原文地址:https://blog.csdn.net/logtcm4/article/details/127887139