繁体   English   中英

如何在Java 8中分组后仅从对象中提取ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM