maxByOrNull<R extends Comparable> method

E? maxByOrNull<R extends Comparable>(
  1. R selector(
    1. E element
    )
)

Returns the first element yielding the largest value of the given selector or null if there are no elements.

Implementation

E? maxByOrNull<R extends Comparable>(R Function(E element) selector) {
  if (isEmpty) return null;

  final iterator = this.iterator..moveNext();
  E maxElement = iterator.current;
  R maxValue = selector(maxElement);

  while (iterator.moveNext()) {
    final current = iterator.current;
    final value = selector(current);

    if (maxValue.compareTo(value) < 0) {
      maxElement = current;
      maxValue = value;
    }
  }

  return maxElement;
}