- Это под многопоточность
- Я прочитал темы о HashMap и не могут найти соответствующие вопросы/ответы
Код:Как объяснить повторяющиеся записи в Java Hashmap?
private Map<String, String> eventsForThisCategory;
...
Map<String, String> getEventsForThisCategory() {
if (eventsForThisCategory == null) {
Collection<INotificationEventsObj> notificationEvents = notificationEventsIndex.getCategoryNotificationEvents(getCategoryId());
eventsForThisCategory = new HashMap<String, String>();
for(INotificationEventsObj notificationEvent : notificationEvents) {
eventsForThisCategory.put(notificationEvent.getNotificationEventID(), notificationEvent.getNotificationEventName());
}
logger.debug("eventsForThisCategory is {}", eventsForThisCategory);
}
return eventsForThisCategory;
}
Выход:
app_debug.9.log.gz: 07 Apr 2016 13: 47: 06,661 DEBUG [WirePushNotificationSyncHandler :: WirePushNot ification.Worker-1] - eventsForThisCategory является {FX_WIRE_DATA = Основные экономические данные, ALL_FX_WIRE = Все, ALL_FX_WIRE = Все, FX_WIRE_HEADLINES = Критические новости}
Как это возможно?
Возможный дубликат [Что происходит, когда дублирующий ключ помещается в HashMap?] (Http://stackoverflow.com/questions/1669885/what-happens-when-a-duplicate-key-is-put-into -a-hashmap) –
Ну, это невозможно. Не для 'HashMap' как минимум. Какой параллелизм имеет ваш код? Есть ли пробелы, которые будут отличаться между двумя клавишами ALL_FX_WIRE? –
Kayaman
@ Kayaman Многопоточность. Нет пробелов, которые отличали бы 2 клавиши. Как вы можете видеть, он распечатывает карту, и я не считаю, что она делает автоматическую подгонку для String – Volodia