HashMap считается быстрее HashSet при итерации по ключам, потому что в нём для доступа к значениям используются уникальные ключи. 1 Он хранит каждое значение с соответствующим ключом, и во время итерации значения можно быстрее получить с помощью ключей. 1 В то время как HashSet полностью основан на объектах, и поэтому получение значений занимает больше времени. 1
Также при работе с HashMap ключ обычно представляет собой простую строку или даже число, и расчёт хэшкода для такого ключа происходит быстрее, чем по умолчанию для всего объекта. 2
При этом итерация по HashMap может быть более дорогой операцией, требующей времени, пропорционального её ёмкости. 4
Следует учитывать, что реальные условия работы могут отличаться от теории, поэтому рекомендуется проводить тестирование производительности. 5