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());
彼らは次のとおりでした:
あなたは、チェーンに必要maxBy
にgroupinhBy
collectior:
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
。