У меня есть массив буферов пользовательского объекта Employee, который имеет empname, empno, joiningdate
Я хотел отсортировать ArrayBuffer по дате соединения с порядком desc и получить топ 10
Я так и сделал, но думаю, что может быть лучшая альтернатива или оптимизированное решение для того же
Невозможно сделать то же самое в запросе базы данных, так как я использую cassandra db, где я не могу сделать то же самое для некластерных столбцов
val employeeList: mutable.Buffer[Employee]// getting from db
val employeeMap = employeeList.groupBy((p: Employee) => p.joiningdate)
val employeeDescSortedMap = new mutable.TreeMap[java.util.Date,
mutable.Buffer[Employee]]()(Ordering.ordered[java.util.Date].reverse)
val limitedSizeEmployeeMap = new mutable.TreeMap[java.util.Date, mutable.Buffer[Employee]]()
var count: Long = 10
employeeDescSortedMap ++= employeeMap
employeeDescSortedMap.foreach(employee => {
if (count > 0) {
limitedSizeEmployeeMap += employee
count -= 1
}
})
limitedSizeEmployeeMap