Java: HashSet против HashMap

У меня есть программа, работающая с огромными наборами данных. Объекты лучше всего хранить в контейнерах с хеш-реализацией, поскольку программа продолжает искать объекты в контейнере.

Первой идеей было использование HashMap, так как методы получения и удаления этого контейнера больше подходят для использования, которое мне нужно.

Но я пришел к выводу, что использование HashMap довольно потребляет память, что является серьезной проблемой, поэтому я подумал, что переключение на HashSet будет лучше, потому что он использует только<E>, и не<K,V> за элемент, но когда я посмотрел на реализацию, я узнал, что она использует базовый HashMap! это означает, что это не спасет память!

Так что это мои вопросы:

Все ли мои предположения верны?Является ли память HashMap расточительной? более конкретно, каковы накладные расходы для каждой записи?Является ли HashSet таким же расточительным, как HashMap?

Существуют ли другие контейнеры на основе хэша, которые потребляют значительно меньше памяти?

Обновить

В соответствии с просьбой в комментариях я немного расширю свою программу: hashMap предназначен для хранения пары других объектов и некоторого числового значения - вычисляемого из них числа с плавающей запятой. по пути он извлекает некоторые из них и вводит новые пары. Для данной пары необходимо убедиться, что она не содержит эту пару или удалить ее. Отображение может быть сделано с использованием значения с плавающей запятой илиhashCode парного объекта.

Кроме того, когда я говорю «огромные наборы данных», я говорю о ~ 4 * 10 ^ 9 объектах

Ответы на вопрос(3)

Ваш ответ на вопрос