docs: public static <K, V> Map<K, List<V>> group(Collection<V> collection, Function<V, K> keyFn) {
          Map<K, List<V>> map = new HashMap<>();
  
          for (V value : collection) {
              K key = keyFn.apply(value);
  
              if (map.get(key) == null) {
                  map.put(key, new ArrayList<V>());
              }
  
              map.get(key).add(value);
          }
  
          return map;
      }