我有一个对象列表,我需要转换为一个映射,其中键是每个元素的函数,值是每个元素的另一个函数的列表.实际上,这是通过它们的功能对元素进行分组.
例如,假设一个简单的元素类:
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不生成地图.