如何使用流将Collectors.groupingby收集器创建的列表的元素映射到其他类型?

时间:2019-12-18 23:57:45

标签: java list dictionary java-stream collectors

我有一个具有多个属性的对象流,我想创建一个包含这些对象的两个属性的Map。

例如:

class MyClass
{
   private int A;
   private int B;
   private String C;

   //constructor, getters, setters, etc...
}

使用Collectors.groupingBy(),我可以创建一个Map >:

Map<String, List<Myclass>> = inputStream.collect(Collectors.groupingby(MyClass::getC));

但是我想要一个Map >,其中Myclass.C作为键,MyClass.B作为列表元素。
MyClass.A不应包含在结果中。
我该怎么办?

预先感谢

1 个答案:

答案 0 :(得分:1)

inputStream.collect(
  Collectors.groupingBy(
    MyClass::getC,
    Collectors.mapping(
      MyClass::getB,
      Collectors.toList())));