Как найти студентов с лучшими оценками в списке?

Предположим, у меня есть список из студентов . Студенты имеют такие поля, как имя , дата рождения , класс и т. Д. Как вы найдете учеников с лучшей оценкой в Scala ?

Например:

List(Student("Mike", "A"), Student("Pete", "B"), Student("Paul", A))"

Я хочу получить

List(Student("Mike", "A"), Student("Paul", A))

Очевидно, я могу найти максимальную оценку («A» в списке выше), а затем отфильтровать list

students.filter(_.grade == max_grade)

Это решение O (N) , но выполняется по списку дважды. Можете ли вы предложить лучшее решение?

7
задан Michael 11 November 2011 в 18:02
поделиться