Глянул в реализацию хешмап. Пока что для меня там творится магия. Из того что понял там реализован интерфейс Entry<K,V> классом Node который хранит в себе пары ключ значение. Но так и не понял зачем нужен этот класс. Ведь мы обратившись в HashMap.keySet() можем сделать все что требуется от HashMap, разве нет?
Зачем писать абракадабру вроде:
for(Map.Entry<Key, Value> entry: map.entrySet())
если проще и понятнее
for(Key key: map.keySet())
???
lost
22 уровень
Зачем в HashMap класс Node?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RiccioMaster
29 сентября 2019, 22:09
"Зачем писать абракадабру вроде: for(Map.Entry<Key, Value> entry: map.entrySet())"
Значит, про Iterator вы не прочитали. Эта "абракадабра" - сокращенная запись от:
Цикл for-each - for(Key key: map.keySet()) - происходит с неявным вызовом итератора.
0
IceBergMaster
29 сентября 2019, 22:07решение
Производительность, и ещё раз производительность - map.get(key) это каждый раз поиск по ключу, затратная операция с вызовом hash/equals.
+3
lost
30 сентября 2019, 00:21
Коротко и ясно. Благодарю!
0