guavaマルチマップ要素を再グループ化する方法はありますか?たとえば、次のマルチマップがあると仮定しましょう。
Multimap<String, Integer> testMultimap = ArrayListMultimap.create();
testMultimap.put("key1", 15);
testMultimap.put("key2", 12);
testMultimap.put("key1", 20);
そして、すべてのマルチマップの主要な要素の合計を取得したいと思います。したがって、これを処理して次のような単純な結果マップを取得するためのグアバの方法はありますか?
resultMap => "Key1": 35, "Key2": 12
前もって感謝します。
私はそれを見つけます、私はこのようにそれをすることができました:
Function<Collection<Integer>, Number> additionFunction = new Function<Collection<Integer>, Number>() {
@Override
public Number apply(Collection<Integer> numbers) {
int sum = 0;
for (Integer number : numbers) {
sum += number;
}
return sum;
}
};
Maps.transformValues(testMultimap.asMap(), additionFunction);
PS:ここでグアバの方法を使用する利点は、複数の関数を定義してから、それらを簡単に切り替えてインターフェースをスローできることFunction<Collection<Integer>, Number>
です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加