Вы можете ответить на свой вопрос, прочитав javadocs для HashMap
.«Прочитайте javadocs» - это важный урок , который каждый новичок в Java должен выучить и запомнить .
В этом случае javadocs покажет вам 3 метода, которые могутбыть полезным:
- Метод
keys()
возвращает коллекцию, состоящую из ключей в таблице. - Метод
values()
возвращает коллекцию, состоящую из значений в таблице. - Метод
entries()
возвращает коллекцию, представляющую пары ключ / значение в таблице.
Вы можете повторять эти коллекции как любую другую коллекцию.В других ответах есть примеры.
Однако создается впечатление, что ваше приложение является многопоточным.Если это так, то есть две другие проблемы, с которыми вам нужно разобраться, чтобы сделать вашу программу надежной:
Если два или более потоков могут использовать один и тот же объект или структуру данных, онинеобходимо предпринять необходимые шаги, чтобы обеспечить их правильную синхронизацию.Если они этого не делают, то существует ненулевая вероятность того, что некоторая последовательность операций приведет к переводу структуры данных в несогласованное состояние или что один или несколько потоков будут см. несогласованное состояние (из-за кэшей памяти, значений, сохраненных в регистрах и т. д.).
Если один поток использует один из итераторов коллекции HashMap, а другой добавляет или удаляет запись, топервая может получить ConcurrentModificationException
.
Если вы решите две вышеуказанные проблемы, заблокировав все остальные операции на HashMap
во время операции «отправить всем»происходит, вы непреднамеренно создаете узкое место в производительности.По сути, все остальное останавливается до завершения операции.Вы получите аналогичный эффект (но в более мелком масштабе), если просто поместите оболочку синхронизации вокруг HashMap
.
Вам необходимо прочитать и узнать об этих вещах.(И это слишком много, чтобы объяснить в одном ответе SO).Простое (но не универсальное) решение всех 3 проблем, которое , вероятно, будет работать в вашем случае, если использовать ConcurrentHashMap
вместо простого HashMap
.