code: public static <K, V> void forEachKey(Map<K, V> map, Procedure<? super K> procedure)
      {
          if (map == null)
          {
              throw new IllegalArgumentException("Cannot perform a forEachKey on null");
          }
  
          if (MapIterate.notEmpty(map))
          {
              if (map instanceof UnsortedMapIterable)
              {
                  ((MapIterable<K, V>) map).forEachKey(procedure);
              }
              else
              {
                  IterableIterate.forEach(map.keySet(), procedure);
              }
          }
      }
docs: For each key of the map, {@code procedure} is evaluated with the key as the parameter.