stream流filter过滤多条件
时间: 2023-04-30 10:06:13 浏览: 221
b'stream\xe6\xb5\x81filter\xe8\xbf\x87\xe6\xbb\xa4\xe5\xa4\x9a\xe6\x9d\xa1\xe4\xbb\xb6' 的意思是流过滤器过滤多条消息。
相关问题
stream流filter多条件过滤
可以使用Java 8的Stream API中的filter方法,结合多个Predicate条件进行过滤,例如:
```java
List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "eggfruit");
Predicate<String> startsWithC = str -> str.startsWith("c");
Predicate<String> lengthIs3 = str -> str.length() == 3;
List<String> filteredList = list.stream()
.filter(startsWithC.and(lengthIs3))
.collect(Collectors.toList());
System.out.println(filteredList); // Output: [cat]
```
这段代码会将列表中以字母"c"开头且长度为3的元素过滤出来。
stream流filter过滤集合
使用Java Stream的filter()方法可以对集合进行过滤。该方法接收一个Predicate参数,用于指定过滤条件。在过滤时,只会保留满足条件的元素,并返回一个新的Stream对象。
以下是一个示例代码,展示如何使用filter()方法过滤集合中身高在1.8米及以上的男生:
```
List<StudentInfo> boys = studentList.stream()
.filter(s -> s.getGender() && s.getHeight() >= 1.8)
.collect(Collectors.toList());
```
在上述代码中,我们首先通过stream()方法将集合转换为一个Stream对象。然后,使用filter()方法指定过滤条件,判断是否为男生(通过getGender()方法返回布尔值)且身高是否大于等于1.8米。最后,通过collect()方法将满足条件的元素收集到一个新的List中。
你可以根据实际需求修改filter()方法的条件,以实现不同的过滤效果。
阅读全文