Из кода HashMap:
for (Iterator<? extends Map.Entry<? extends K, ? extends V>> i = m.entrySet().iterator(); i.hasNext(); ) {
Map.Entry<? extends K, ? extends V> e = i.next();
put(e.getKey(), e.getValue());
}
Теперь, может быть, вам следует объяснить, почему вы не можете использовать такой итератор.
Или дайте нам код реализации, чтобы мы могли видеть, как вы храните записи KV, возможно, мы могли бы помочь с этим больше. Только с помощью методов интерфейса Map нет другого пути, кроме как с 3 методами, которые вы можете использовать