[英]How to extract only ID's from object after groupingBy in java 8
public class Element {
private Long id;
private String groupType;
}
我有元素列表。 具有不同groupType的列表,例如'group1','group2'{1,group1},{2,group1},{3,group2} {4,group2}
我想为每个组创建两个不同列表的地图,但使用ids(Map>)而不使用Element对象Map>
下面的代码对于Map>也可以正常工作
Map<String, List<Element>> elementByGroup = new HashMap<>();
elementByGroup = element.stream().collect(
Collectors.groupingBy(Element::getGroupType));
我如何以Map <String,List <Long>>的形式收集结果。 我知道通过迭代Map然后迭代list可以得到没有Java 8的id的列表。但是,我想通过在groupingby函数之后使用上面的代码来做同样的事情。
您需要使用Collectors.mapping() 。 看起来像这样
Map<String, List<Long>> idsByGroupType =
elements.stream().collect(
Collectors.groupingBy(Element::getGroupType,
Collectors.mapping(Element::getId, Collectors.toList())));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.