Javaで各グループの最大の並べ替えやグループによると見つける8

Shraddha:

私は名前とスコアを持つオブジェクトを持っています。私は名前で要素をソートし、その名前の最大スコアを見つけたいです。

例えば、以下のオブジェクト(ある名前スコア):

(a, 3)
(a, 9)
(b, 7)
(b, 10)
(c, 8)
(c, 3)

出力は次のようになります。

(a, 9)
(b, 10)
(c, 8)

私は、コードの下に使用して並べ替えることができていますが、私は見つけることができないのです最大の

List<Record> result = list.stream()
        .sorted(Comparator.comparing(Record::score))
        .collect(Collectors.groupingBy(Record::name, LinkedHashMap::new, Collectors.toList()))
        .values().stream()
        .flatMap(Collection::stream)
        .collect(Collectors.toList());
彼らは次のとおりでした:

あなたは、チェーンに必要maxBygroupinhBycollectior:

Map<String,Record> result = 
    list.stream()
        .sorted(Comparator.comparing(Record::score))
        .collect(Collectors.groupingBy(Record::name, 
                                       LinkedHashMap::new,
                                       Collectors.maxBy(Comparator.comparing(Record::getScore))));

あなただけを気にしている場合やRecordインスタンス、あなたが取得できるvalues()というのをMap

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=227657&siteId=1