stream流过滤是否存在在某个值中
时间: 2023-08-23 11:31:42 浏览: 37
您可以使用`Stream`的`anyMatch()`方法来判断流中是否存在某个值。例如,假设您有一个包含`String`类型元素的`List`,您想要判断这个`List`中是否存在一个特定的字符串,您可以使用以下代码:
```java
List<String> list = ... // 假设这是一个String类型的列表
String targetValue = "hello"; // 假设这是您想要查找的字符串
boolean isExists = list.stream()
.anyMatch(str -> str.equals(targetValue));
```
在上面的代码中,我们使用`Stream`的`anyMatch()`方法来判断流中是否存在一个特定的字符串。该方法接受一个`Predicate`参数,用于定义筛选条件。在这里,我们使用`str -> str.equals(targetValue)`作为筛选条件,表示如果流中存在一个字符串等于`targetValue`,则返回`true`,否则返回`false`。最终,返回的`isExists`变量将会是一个布尔值,表示流中是否存在特定的字符串。
相关问题
java stream流 过滤对象中的某个属性
可以使用 stream 的 map() 方法,将对象中要过滤的属性映射出来,然后使用 filter() 方法进行过滤,最后使用 collect() 方法将过滤后的对象转为一个新的 list 。
例如:
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Alice", 26));
personList.add(new Person("Bob", 31));
personList.add(new Person("Charlie", 24));
List<Integer> ageList = personList.stream().map(Person::getAge).filter(age -> age > 25).collect(Collectors.toList());
这个例子将 Person 对象中的 age 属性映射出来,然后对 age 大于 25 的进行过滤,最后将符合条件的 age 转为一个新的列表 ageList。
stream流过滤对象的某个属性
可以使用Java 8中的Stream API来过滤对象的某个属性。假设我们有一个类Person,它有一个属性age,现在我们想过滤出年龄大于等于18岁的人,可以按照以下步骤进行操作:
1. 创建一个List<Person>对象。
2. 使用stream()方法将List转换为Stream。
3. 使用filter()方法过滤出符合条件的元素,条件为person.getAge() >= 18。
4. 使用map()方法将Stream中的元素转换为另一个类型,例如将Person转换为其年龄。
5. 使用collect()方法将Stream转换为List。
以下是示例代码:
```
List<Person> personList = new ArrayList<>();
// 添加Person对象到personList中
List<Integer> ageList = personList.stream()
.filter(person -> person.getAge() >= 18)
.map(Person::getAge)
.collect(Collectors.toList());
```
这样,我们就过滤出了年龄大于等于18岁的人,并将他们的年龄转换为一个List。