javastream流过滤
时间: 2023-10-31 18:59:34 浏览: 137
Java中的流过滤是一种对流中的元素进行处理或筛选的操作。常见的流过滤操作有过滤、映射、排序等。
要对流进行过滤,可以使用filter()方法。该方法接受一个Predicate接口的实现作为参数,用于判断流中的每个元素是否满足特定条件。满足条件的元素将被保留下来,不满足条件的元素将被过滤掉。
以下是一个示例代码,演示了如何使用filter()方法对一个整数流进行过滤,只保留大于10的元素:
```java
List<Integer> numbers = Arrays.asList(5, 12, 8, 15, 3, 20);
List<Integer> filteredNumbers = numbers.stream()
.filter(num -> num > 10)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [12, 15, 20]
```
在上述代码中,首先将整数集合转换成流,然后调用filter()方法并传入一个Lambda表达式作为参数。Lambda表达式定义了一个条件,即num是否大于10。最后使用collect()方法将过滤后的元素收集到一个新的列表中。
除了过滤外,Java流还提供了其他常用的操作,如映射(map)、排序(sorted)等。你可以根据具体的需求选择适合的流操作来对数据进行处理。
相关问题
java stream 流过滤用法
Java Stream API 提供了一种强大的、内存高效的处理集合数据的方式,其中过滤(Filtering)是其基础操作之一。通过 `filter()` 方法,你可以从流中选择满足特定条件的元素并创建一个新的流。这个方法接受一个谓词(Predicate),该谓词用于判断每个元素是否应该通过过滤。
例如,假设你有一个整数列表,你可以使用 `filter()` 过滤出所有偶数:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
在这个例子中,`n -> n % 2 == 0` 是一个谓词,它测试每个数字 `n` 是否能被 2 整除,如果可以,则返回 `true`,元素会被保留在新流中。
java stream流过滤出符合条件的数据并统计个数
假设有一个包含多个人员信息的列表,需要使用Java Stream流过滤出年龄大于等于18岁的人员信息,并统计个数。代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Jerry", 16));
personList.add(new Person("Alice", 18));
personList.add(new Person("Bob", 25));
personList.add(new Person("John", 30));
long count = personList.stream()
.filter(person -> person.getAge() >= 18)
.count();
System.out.println("符合条件的人员个数为:" + count);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
输出结果为:
```
符合条件的人员个数为:4
```
在上述代码中,使用了Java 8中新增的Stream流对人员列表进行筛选过滤。首先使用`stream()`方法将列表转换为一个流,并使用`filter()`方法对流中的元素进行筛选,筛选条件为年龄大于等于18岁。最后使用`count()`方法统计筛选后的元素个数。
阅读全文
相关推荐















