故事开头
现实生活中没有完美的人生,正如舞台上没有纯粹的喜剧
首先也可以先了解一下: 传送门
照着样例自己动手敲一遍就会了
Stream(流)
串行stream() − 为集合创建串行流。
- 串行 一个线程做完所有事情
- 优点:不存在什么线程安全问题,保证处理的先后顺序。
- 缺点:速度比较慢。
并行parallelStream() − 为集合创建并行流
- 并行 多个线程一起做
- 优点:处理速度快
- 缺点:线程安全处理不得当会引发灾难。
回到正文
package com.example.demo.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<String> list = Arrays.asList("att","btt","ctt","dtt","ett","ftt");
List<Integer> numbers = Arrays.asList(3,1,4,5,2,6);
Map<String,Object> map = new HashMap<>();
map.put("1","小黑");
map.put("2","小是");
map.put("3","小个");
map.put("4","小额");
map.put("5","小给");
//foreach遍历,用起来很方便
list.stream().forEach(s -> {
System.out.println(s+"520");
});
//filter通过设置的条件过滤出元素
List<String> collect = list.stream().filter(s -> s.contains("a")).collect(Collectors.toList());
System.out.println(collect.toString());
//map映射每一个结果
List<Integer> collect1 = numbers.stream().map(s -> s * 5).collect(Collectors.toList());
System.out.println(collect1.toString());
numbers.stream().map(s -> s*10).filter(s -> s>20).forEach(num ->{
System.out.println(num);
});
//limit显示多少数据
list.stream().limit(3).filter(s -> s.contains("a")).forEach(num ->{
System.out.println(num);
});
//sorted排序
List<Integer> collect2 = numbers.stream().sorted().collect(Collectors.toList());
System.out.println(collect2.toString());
//在map集合中能直接遍历对应的key和value,然后在进行操作
map.forEach((key,value) ->{
System.out.println(key+value);
});
map.entrySet().forEach(entry ->{
System.out.println(entry.getKey()+entry.getValue());
});
}
}
打印的结果信息
att520
btt520
ctt520
dtt520
ett520
ftt520
[att]
[15, 5, 20, 25, 10, 30]
30
40
50
60
att
[1, 2, 3, 4, 5, 6]
1小黑
2小是
3小个
4小额
5小给
1小黑
2小是
3小个
4小额
5小给
总结
我不要你觉得,我要我觉的!!奥利给!!!