stream().filter()的contains用法
时间: 2023-11-15 22:55:28 浏览: 257
在使用Java 8的Stream API时,我们可以使用filter()方法来过滤出符合条件的元素,然后使用contains()方法来判断某个元素是否在过滤后的集合中。
例如,我们有一个字符串列表,想要过滤出包含字母"a"的字符串,并判断某个字符串是否在过滤后的集合中,可以这样写:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
boolean containsOrange = list.stream()
.filter(str -> str.contains("a"))
.contains("orange");
```
上述代码中,我们先使用filter()方法过滤出包含字母"a"的字符串,然后使用contains()方法判断"orange"是否在过滤后的集合中。
相关问题
stream = stream.filter(p -> StringUtils.contains(p.getName(), name));这句代码实现的功能是什么
这句代码是使用Java 8中的Stream API对一个Stream对象进行过滤操作。它的功能是筛选出Stream中名称(name属性)包含指定字符串(name变量)的元素,并将这些元素组成一个新的Stream对象返回。
具体来说,代码中的filter()方法接收一个Lambda表达式,这个Lambda表达式会对Stream中的每一个元素进行判断,如果该元素的名称属性包含指定字符串,则返回true,否则返回false。最终,filter()方法会返回一个新的Stream对象,该对象包含了所有符合条件的元素。而StringUtils.contains()方法则是Apache Commons Lang库中的一个工具类方法,用于判断一个字符串是否包含另一个字符串。
list.stream.filter模糊过滤
对于模糊过滤,你可以使用 `filter` 方法配合匿名函数来实现。假设你有一个字符串列表 `list`,你想要过滤出其中包含特定子串的元素,可以按照以下方式使用 `filter` 方法:
```java
List<String> filteredList = list.stream()
.filter(str -> str.contains("特定子串"))
.collect(Collectors.toList());
```
其中,`str -> str.contains("特定子串")` 是一个匿名函数,用于判断字符串是否包含特定子串。`filter` 方法会保留返回值为 `true` 的元素,最后使用 `collect` 方法将过滤后的元素收集到新的列表中。
你可以根据实际需求修改上述代码中的 "特定子串" 部分,以适应不同的模糊过滤条件。
阅读全文