Java8-Stream流式计算

2020-09-11  本文已影响0人  徒手說梦话

什么是Stream流式计算

大数据:存储 + 计算

集合、MySQL 本质就是存储东西的;

计算都应该交给流来操作!

Stream是对集合功能的增强,它提供了各种非常便利、高效的聚合操作,可以大批量数据操作,同时再结合Lambda表达式,就可以极大的提高编程效率。

Stream的API提供了串行和并行两种模式进行操作数据。

Stream操作分为中间操作或者最终操作两种:

public class User {
    private Integer id;
    private String name;
    private Integer age;
    // get、set
    // 有参、无参构造方法
    // tostring
}
package com.kuang.stream;
import java.util.Arrays; import java.util.List;
/** 
* 题目要求:一分钟内完成此题,只能用一行代码实现! * 现在有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);      
        // 集合就是存储      
        List<User> list = Arrays.asList(u1, u2, u3, u4, u5);
        // 计算交给Stream流      
        // lambda表达式、链式编程、函数式接口、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 uu2.compareTo(uu1);})         
            .limit(1)
            .forEach(System.out::println); 
    } 
}

Stream的操作,看起来很像生产车间的流水线作业:

image-20200908193536299.png
常用方法:
上一篇 下一篇

猜你喜欢

热点阅读