Java8 Stream的使用
目的: 提高生产力,写出高效率、干净、简洁的代码
1. forEach
forEach方法迭代流中的每个数据
List<String> list = Arrays.asList("a", "b", "c", "d", "e");
list.stream().forEach(item-> System.out.println(item));
2. filter
filter方法用于通过设置的条件过滤出元素
List<String> list = Arrays.asList("a", "", "b", "c", "", "d");
// 过滤掉空的字符串
list.stream().filter(item -> !item.isEmpty()).forEach(s -> System.out.println(s));
3.map
map 方法用于映射每个元素到对应的结果
//需求: 使用 map 输出了元素对应的平方数
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
//获取对应的平方数
List<Integer> squaresList = numbers.stream()
.map(i -> i * i).distinct().collect(Collectors.toList());
System.out.println(squaresList);
//[9, 4, 49, 25]
4.limit
limit 方法用于获取指定数量的流
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取前3条数据
numbers.stream().limit(3).forEach(item -> System.out.println(item));
5.sorted
sorted 方法用于对流进行排序
List<Integer> numbers = Arrays.asList(3, 2, 2,7,5);
// 排序(正序)
numbers.stream().sorted().forEach(item -> System.out.println(item));