java List 集合中有User对象 其中有个字段是布尔值 我想统计 List集合中 布尔值是true的数量有多少?有多少种实现方式?请一一例举
时间: 2024-02-21 08:01:26 浏览: 66
可以使用循环遍历 List 集合中的每一个 User 对象,然后判断该 User 对象中布尔值字段的值是否为 true,如果是,则统计数加一。以下是一些实现方式:
1. 使用 for 循环遍历 List 集合中的每一个 User 对象,然后判断该 User 对象中布尔值字段的值是否为 true,如果是,则统计数加一。
```
int count = 0;
for (int i = 0; i < userList.size(); i++) {
User user = userList.get(i);
if (user.isBoolField()) {
count++;
}
}
```
2. 使用 foreach 循环遍历 List 集合中的每一个 User 对象,然后判断该 User 对象中布尔值字段的值是否为 true,如果是,则统计数加一。
```
int count = 0;
for (User user : userList) {
if (user.isBoolField()) {
count++;
}
}
```
3. 使用 Java 8 的流式处理方式对 List 集合进行处理,使用 filter 方法过滤出布尔值字段为 true 的 User 对象,然后使用 count 方法统计数量。
```
long count = userList.stream().filter(User::isBoolField).count();
```
4. 使用 Java 8 的流式处理方式对 List 集合进行处理,使用 reduce 方法统计布尔值字段为 true 的 User 对象数量。
```
int count = userList.stream().mapToInt(user -> user.isBoolField() ? 1 : 0).reduce(0, Integer::sum);
```
阅读全文