java - 从 Map 中过滤出多个条件的结果
问题描述
我有一个包含 和 列表的empid
地图name
。我只想选择大于 7 且名称以 N 开头的emp name
人。结果必须是 SET。id
我尝试使用map.entryset()
但想不出如何在地图内部进行过滤。
我们必须使用 if else 吗?如果找到多个元素,我们将如何返回 set?
解决方案
应该是这样的
Set<String> selectedEmps = empIdToName.entrySet().stream()
.filter(e -> e.getKey() > 7)
.filter(e -> e.getValue().startsWith("N"))
.map(Map.Entry::getValue)
.collect(Collectors.toSet());
推荐阅读
- docker - 构建工具/实用程序时如何从另一个容器中运行容器
- azure-active-directory - 天蓝色广告如何使用从另一个应用程序传递的令牌进行身份验证
- javascript - React中date-fns格式日期和年龄计算问题
- java - 如何在 pom.xml 中使用 maven-assembly-plugin 来构建 Spark 应用程序时减小 jar 大小
- java - Openapi 生成器无法使用枚举生成查询参数
- spring-boot - 没有 web 但带执行器的弹簧启动
- c - char 和 toupper 的结果模棱两可
- php - 更改 WooCommerce 订阅结束日期
- java - 在Java中,如何从一个生产者向多个消费者发送连续数据?
- ios - 通用链接不适用于反应原生 IOS