java stream Filter过滤后统计个数,怎么写
时间: 2024-01-24 14:02:51 浏览: 20
可以使用Java 8中的Stream API来实现这个功能。假设我们有一个List<String>类型的列表,我们想要统计其中长度为3的字符串的个数,可以按照以下步骤操作:
1. 使用stream()方法获取列表的流
2. 使用filter()方法过滤出长度为3的字符串
3. 使用count()方法统计符合条件的字符串的个数
代码示例:
```java
List<String> strList = Arrays.asList("apple", "banana", "cat", "dog", "egg", "fox");
long count = strList.stream()
.filter(str -> str.length() == 3)
.count();
System.out.println("长度为3的字符串个数为:" + count);
```
输出结果为:
```
长度为3的字符串个数为:2
```
在这个例子中,使用了lambda表达式作为filter()方法的参数,这个表达式的作用是判断字符串的长度是否为3。count()方法返回符合条件的字符串的个数。
相关问题
java stream filter过滤器
Java Stream是Java 8引入的一个API,它可以方便地对Java集合进行处理。其中,filter过滤器是Stream API提供的一个方法,它可以根据某个条件过滤出符合条件的元素。
使用filter方法时,需要先传入一个Predicate(谓词)对象,该对象定义了过滤规则。然后,filter方法会对Stream中的每个元素执行Predicate中定义的条件,如果元素满足条件,则被保留下来,否则被过滤掉。
例如,可以使用filter过滤器过滤出一个List中所有大于5的元素,代码如下:
List<Integer> list = Arrays.asList(3, 5, 7, 8, 2, 4);
list.stream()
.filter(i -> i > 5)
.forEach(System.out::println);
运行以上代码,会输出7和8,符合条件的元素被保留下来了。
除了filter过滤器外,Stream API还提供了许多其他有用的方法,例如map、reduce、sorted等等,可以方便地对集合进行转换、计算、排序等操作。使用Stream API可以让代码更简洁、易读、易维护,值得去学习和使用。
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()`方法统计筛选后的元素个数。