首页 / JAVA / java-从流的内部过滤器获取布尔值
java-从流的内部过滤器获取布尔值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-从流的内部过滤器获取布尔值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1197字,纯文字阅读大概需要2分钟。
内容图文
![java-从流的内部过滤器获取布尔值](/upload/InfoBanner/zyjiaocheng/665/df76898de65e4fceb223aac6c23ad7dc.jpg)
考虑我有以下代码
public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<>();
map.put("a", Arrays.asList("1", "2", "3", "4"));
map.put("b", Arrays.asList("6", "7", "4", "5"));
map.entrySet().stream().filter(t -> t.getValue()
.stream().filter(v -> Integer.valueOf(v) > 0)
.**WhatShouldIputThereToMakeitBolean**)
.collect(Collectors.toSet());
}
我想做的是有一张地图,其值作为字符串列表.
这些值将转换为Integer,并将检查该值是否大于给定值,例如在Second / Inner过滤器中.
我已经使用了两个过滤器,所以可以将其分解为小部分,但是从内部过滤器中我无法获得布尔值,因此我将获得所需的流,然后将其使用flatmat(Collection :: stream)合并,然后将转换为set(以避免重复),因为两个列表都包含一个公共值,即4
我需要的输出必须是Integer和Single set的形式,它将像[1,2,3,4,5,6]那样合并,这里的值4是重复的,如果它必须限制结果集中的值(如果value较小)然后提供价值
我在遍历地图时有一个简单的查询,该地图包含列表作为值,在这里我无法从内部过滤器中获取布尔值
解决方法:
如果我理解正确,则需要先展平地图列表,然后将大于0的唯一值收集到Set中.
您可以以map.values().stream()开头,以仅获取地图的值.
Set<Integer> set = map.values().stream()
.flatMap(Collection::stream)
.map(Integer::valueOf)
.filter(num -> num > 0)
.collect(Collectors.toSet());
内容总结
以上是互联网集市为您收集整理的java-从流的内部过滤器获取布尔值全部内容,希望文章能够帮你解决java-从流的内部过滤器获取布尔值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。