Непонятный класс EntrySet

97
27 февраля 2021, 14:40

В java создаю такую конструкцию. По документации метод entrySet возвращает объект типа Set, но под отладчиком что-то непонятное. Откуда взялся тип HashMap@EntrySet? Вот у переменной hashMap тип корректный.

HashMap<String, Integer> hashMap = new HashMap(1);
hashMap.put(null, 156);
hashMap.put("First", 16);
hashMap.put("Second", 16);
Set set = hashMap.entrySet();

Answer 1

Если откроешь реализацию, то увидишь:

final class EntrySet extends AbstractSet<Map.Entry<K,V>>

А если перейдешь в реализацию AbstractSet:

public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>

Вот и выходит, что метод Hashmap.entrySet() возвращает объект класса HashMap.EntrySet, который расширяет абстрактный класс AbstractSet, который имплементирует интерфейс Set.

READ ALSO
Переход во вторую activity

Переход во вторую activity

Данное приложение сканирует штрих и qr код, как сделать так, чтобы после сканирования, результат сканирования выводился во второй Activity?

100
Вывод окна ожидания

Вывод окна ожидания

Хочу вывести Alert окно, которое будет закрываться после того как выполнится задача из другого класса

131
Установить атрибут &ldquo;disabled&rdquo; у select. Jquery

Установить атрибут “disabled” у select. Jquery

Задача: установить выборочно атрибут disabledПеребирал несколько вариантов, не работает ни один

128
Почему не работает телеграм-бот?

Почему не работает телеграм-бот?

пробую создать первого бота при помощи телеграфа, взял с их гитхаба код:

101