Глянул в реализацию хешмап. Пока что для меня там творится магия. Из того что понял там реализован интерфейс Entry<K,V> классом Node который хранит в себе пары ключ значение. Но так и не понял зачем нужен этот класс. Ведь мы обратившись в HashMap.keySet() можем сделать все что требуется от HashMap, разве нет? Зачем писать абракадабру вроде: for(Map.Entry<Key, Value> entry: map.entrySet()) если проще и понятнее for(Key key: map.keySet()) ???