findElementWithMaxFrequency<T> function

T findElementWithMaxFrequency<T>(
  1. List<T> list
)

Returns the element with the highest frequency in the list. If multiple elements have the same max frequency, returns any one of them. Throws ArgumentError if the list is empty.

Implementation

T findElementWithMaxFrequency<T>(final List<T> list) {
  if (list.isEmpty) {
    throw ArgumentError('List cannot be empty');
  }

  final Map<T, int> frequencyMap = <T, int>{};
  for (final T element in list) {
    frequencyMap[element] = (frequencyMap[element] ?? 0) + 1;
  }

  T? result;
  int maxFrequency = 0;

  frequencyMap.forEach((final T element, final int frequency) {
    if (frequency > maxFrequency) {
      maxFrequency = frequency;
      result = element;
    }
  });

  return result as T;
}