maxBy
El elemento cuya clave es la más grande — una sola pasada, sin ordenar, null cuando está vacío.
Lección
maxBy responde a «¿qué elemento tiene la clave más
grande?», no a «¿cuál es el número más grande?» (eso es
max). Recorre el pipeline
una sola vez, conservando el mejor elemento visto hasta el
momento, así que es O(n) mientras que la tentadora forma
sortBy(key).head() paga O(n log n) y materializa una
lista ordenada que nunca llega a necesitar.
Las claves se comparan exactamente igual que las compara
sortBy
(Comparable.compare), y en caso de empate gana el
primer elemento encontrado — así que un maxBy
sobre una lista ordenada por fecha te da el más antiguo de entre los
igualmente máximos.
Una entrada vacía devuelve null, igual que
head y
last — aquí los tipos anulables de
Dart sustituyen al undefined de FxTS. Es un añadido nativo de
Dart (FxTS solo trae el max numérico); el nombre sigue la
forma de maxByOrNull de Kotlin.
Demo 1 · Fundamentos, caso vacío & empates
Demo 2 · Asíncrono
Pruébalo tú
Ejercicio: encuentra el gasto más grande sin ordenar.