- Dies ist unter Multi-Threading
- Ich habe Themen über HashMap lesen und nicht relevanten Fragen finden können/Antworten
Der Code:Wie erklärt man doppelte Einträge in 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;
}
Der Ausgang:
app_debug.9.log.gz: 07 Apr 2016 13: 47: 06,661 DEBUG [WirePushNotificationSyncHandler :: WirePushNot ification.Worker-1] - eventsForThisCategory ist {FX_WIRE_DATA = Wichtige Wirtschaftsdaten, ALL_FX_WIRE = All, ALL_FX_WIRE = All, FX_WIRE_HEADLINES = Kritischer Schlagzeilen}
Wie es möglich ist?
Mögliches Duplikat [Was passiert, wenn ein doppelter Schlüssel in eine HashMap gesetzt wird?] (Http://stackoverflow.com/questions/1669885/what-happens-when-a-duplicate-key-is-put-into -a-hashmap) –
Nun, es ist nicht möglich. Nicht für eine 'HashMap' zumindest. Welche Art von Nebenläufigkeit hat Ihr Code? Gibt es Leerzeichen, die sich zwischen den beiden 'ALL_FX_WIRE'-Schlüsseln unterscheiden? –
Kayaman
@Kayaman Es ist Multi-Threading. Es gibt keine Leerräume, die die 2 Schlüssel unterscheiden würden. Wie Sie sehen können, ist es die Karte ausdruckt, und ich glaube nicht, dass es für String – Volodia