List<String> orderedName = list.stream().collect(Collectors.groupingBy(i -> i.get("name"), Collectors.summingDouble(i -> (double) i.get("score"))))
.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).map(i -> (String) i.getKey())
.collect(Collectors.toList());
原文:https://www.cnblogs.com/yangshaox/p/14776311.html