相关疑难解决方法(0)

Java:如何从List <T>转换为Map <f1(T),List(f2(T))>而无需迭代

我有一个对象列表,我需要转换为一个映射,其中键是每个元素的函数,值是每个元素的另一个函数的列表.实际上,这是通过它们的功能对元素进行分组.

例如,假设一个简单的元素类:

class Element {
    int f1() { ... }
    String f2() { ... }
}
Run Code Online (Sandbox Code Playgroud)

以及这些的清单:

[
    { f1=100, f2="Alice" },
    { f1=200, f2="Bob" },
    { f1=100, f2="Charles" },
    { f1=300, f2="Dave" }
]
Run Code Online (Sandbox Code Playgroud)

那我想要一张地图如下:

{
    {key=100, value=[ "Alice", "Charles" ]},
    {key=200, value=[ "Bob" ]},
    {key=300, value=[ "Dave" ]}
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一种简洁的方式在Java中执行此操作而不进行迭代吗?LambdaJ的group方法与Guava的组合Maps.transform几乎可以实现,但group不生成地图.

java collections guava lambdaj

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

collections ×1

guava ×1

java ×1

lambdaj ×1