stream流中的筛选方法
时间: 2023-08-31 17:06:20 浏览: 92
详解java8中的Stream数据流
在Java 8中,Stream提供了多种用于筛选元素的方法:
1. filter:根据指定的条件过滤出满足条件的元素,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
// 过滤出偶数
```
2. distinct:去重,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 5);
List<Integer> result = list.stream().distinct().collect(Collectors.toList());
// 去重
```
3. limit:截取前n个元素,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().limit(3).collect(Collectors.toList());
// 截取前3个元素
```
4. skip:跳过前n个元素,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().skip(2).collect(Collectors.toList());
// 跳过前2个元素
```
5. takeWhile:从开头开始取元素,直到不满足条件为止,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().takeWhile(i -> i <= 3).collect(Collectors.toList());
// 取小于等于3的元素
```
6. dropWhile:从开头开始跳过元素,直到不满足条件为止,返回一个新的Stream。
例如:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().dropWhile(i -> i <= 3).collect(Collectors.toList());
// 跳过小于等于3的元素
```
以上是Stream中的一些常用的筛选方法,希望对您有所帮助。
阅读全文