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

标签 java list dictionary java-stream collectors

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

例如:

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

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

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

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

但我想要一个 Map< String, List< int>> ,其中 Myclass.C 作为键,MyClass.B 作为列表元素。
MyClass.A 不应包含在结果中。
我怎样才能做到这一点?

提前致谢

最佳答案

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

关于java - 如何使用流将 Collectors.groupingby 收集器创建的列表元素映射到其他类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59401596/

相关文章:

java - 如何将其他类添加到当前阶段 - JavaFX

java - 如何确定代表输入金额所需的每种不同硬币的最少数量?

python - 在python中将列表中的数字相乘

c# - 如何自动增加字典的键?

c# - 可通过索引和键访问的内置列表

Java 正则表达式未按预期工作

java - 我们可以在没有循环语句的情况下计算字符串中的数字表达式(通过正则表达式)吗?

swift - 如何将此条目插入我的字典?

c# - List<T>.FindAll 的结果是否保证与原始列表的顺序相同?

ios - 'UILabel ?' does not have a member named ' 文本'