直接上代码
List<Student> list=new ArrayList<>();
list.add(new Student(1,"zhangsan","90"));
list.add(new Student(1,"wang","91"));
list.add(new Student(2,"lili","95"));
list.add(new Student(2,"cc","93"));
List<Student> list1= list.stream().collect(Collectors.groupingBy(Student::getId)).values()
.stream().flatMap(e->Arrays.asList(e.stream().sorted(Comparator.comparing(Student::getScore).reversed()).findFirst().get())
.stream()).collect(Collectors.toList());
完美解决,用到点个赞