在我之前的问题中——如何在带有列表的地图中分组时过滤年龄我能够使用以下方法找到年龄组的名称List<User> users
。现在我正在努力寻找不同的用户组根据阈值从年龄开始。我试过这个
List<User> userAboveThreshold = users.stream().filter(u -> u.getAge() > 21).collect(toList());
List<User> userBelowThreshold = users.stream().filter(u -> u.getAge() <= 21).collect(toList());
这次它有效了我可以看到使用
userAboveThreshold.forEach(u -> System.out.println(u.getName() + " " + u.getAge()));
userBelowThreshold.forEach(u -> System.out.println(u.getName() + " " + u.getAge()));
但我必须访问users再次列出以找到免费列表。这不能做得更简单吗?
你在追寻partitioningBy
集电极:
Map<Boolean, List<User>> result =
users.stream().collect(partitioningBy(u -> u.getAge() > 21));
然后按如下方式使用它:
List<User> userAboveThreshold = result.get(true);
List<User> userBelowThreshold = result.get(false);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)