java - 使用流在 java 8 中拆分 entrySet 和过滤器
问题描述
我对流有疑问
我有一个Map<LocalDateTime, Set<Vote>> map = new HashMap<>();
我必须计算票数并将其放入按 localDateTime 分组的新地图中,但我只需要计算按类型过滤的票数。我不知道如何使用流来做到这一点。
我已经尝试过了,但它不起作用,甚至无法编译
public Map<LocalDateTime, Integer> numbersOfVotes(TypeVote typeVote) {
return map.entrySet().stream().filter(en -> en.getValue().stream().filter(v -> v.getTypeVote().equals(typeVote)))
.collect(Collectors.toMap(Entry::getKey, e -> e.getValue().size()));
}
类 vote 有 2 个属性,name 和 TypeVote(枚举)
public Map<LocalDateTime, Integer> numbersOfVotes(TypeVote typeVote) {
return null;
}
我的返回值必须是Map<LocalDateTime, Integer>
.
如何在 Java 8 中使用流来做到这一点?
解决方案
final Map<LocalDateTime, Integer> result = map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
(Map.Entry<LocalDateTime, Set<Vote>> entry) -> (int) entry.getValue().stream()
.filter((Vote vote) -> true) // Here insert real filtering
.count()));
推荐阅读
- .net - msbuild 能否在构建期间解锁锁定的 dll,从而避免点击“无法访问该文件,因为它被另一个进程使用”?
- mysql - 数据库增量无法正常工作
- python - 如何将函数变量存储在函数之外以在另一个文件中使用?
- javascript - React Route - 从 JSON 对象中的字符串渲染路由中的组件
- vb.net - 复选框使 myCurrencyManager.AddNew() 无法正常工作
- spring - 如何使用 Spring Boot 和 JPA 在 GET 请求中获取所有一对多实体
- python - Django 是否为模板使用内置变量名?
- ruby-on-rails - 模型中表的未知主键 (ActiveRecord)
- java - 如果没有依赖注入,Java Spring 中的 XML IoC 有什么意义?
- functional-programming - 如何从方案中的函数返回值