JUC-11-Stream流式计算

JUC-11-Stream流式计算

1. 简介

大数据时代:存储+计算、

  • 存储:集合,Mysql
  • 真正的计算都应该交给流去操作。(流计算实际上是链式编程)
  • java.util.Stream接口

mark

2. 实际使用

  1. 新建一个User.java类(导入lombook)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.zhuuu;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private String name;
private int age;
}
  1. 实际测试流计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.zhuuu;

import java.util.Arrays;
import java.util.List;

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);

// 集合用来存储
// 流计算实际上是链式编程
List<User> list = Arrays.asList(u1, u2, u3, u4, u5);

// 计算交给流
// 1. 过滤id为偶数的参数
list.stream()
.filter(u->{return u.getId()%2==0;})
.forEach(System.out::println);

// 2. 年龄大于23岁
list.stream()
.filter(u->{return u.getAge()>23;})
.forEach(System.out::println);

//3 . 用户名转换成大写
list.stream()
.filter(u->{return u.getAge()>23;})
.map(u->{return u.getName().toUpperCase();})
.forEach(System.out::println);

// 4. 用户名倒着排序
list.stream()
.filter(u->{return u.getAge()>23;})
.map(u->{return u.getName().toUpperCase();})
.sorted((uu1,uu2)->{return uu2.compareTo(uu1);})
.forEach(System.out::println);

// 5. 只输出一个用户
list.stream()
.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);
}
}
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信