Предположим, у меня есть список из студентов
. Студенты
имеют такие поля, как имя
, дата рождения
, класс
и т. Д. Как вы найдете учеников
с лучшей оценкой
в 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)
, но выполняется по списку дважды. Можете ли вы предложить лучшее решение?