Java: как преобразовать из List в Map без итерации

У меня есть список объектов, которые мне нужно преобразовать в карту, где ключи являются функцией каждого элемента, а значения являются списками другой функции каждого элемента. По сути, это группировка элементов по их функции.

Например, предположим простой класс элементов:

class Element {
    int f1() { ... }
    String f2() { ... }
}

и список из них:

[
    { f1=100, f2="Alice" },
    { f1=200, f2="Bob" },
    { f1=100, f2="Charles" },
    { f1=300, f2="Dave" }
]

, тогда я хотел бы получить карту следующим образом:

{
    {key=100, value=[ "Alice", "Charles" ]},
    {key=200, value=[ "Bob" ]},
    {key=300, value=[ "Dave" ]}
}

Может ли кто-нибудь предложить краткий способ сделать это в Java без итерации? Комбинация метода LambdaJ group с Maps.transform Гуавы почти добирается туда, но group не генерирует карту.

14
задан Kkkev 2 December 2011 в 09:25
поделиться