У меня есть ConcurrentHashMap, который содержит строку как ключ и LinkedList как значение. Размер списка не должен быть больше 5. Я пытаюсь добавить некоторые элементы в список, но когда я распечатываю карту, я вижу только последний добавленный элемент. Вот мой код:
private ConcurrentHashMap<String, LinkedList<Date>> userDisconnectLogs = new ConcurrentHashMap<String, LinkedList<Date>>();
public void addNewDateEntry(String userId, LinkedList<Date> timeStamps) {
if (timeStamps.size() >= 5) {
timeStamps.poll();
timeStamps.add(new Date());
userDisconnectLogs.put(userId, timeStamps);
} else {
timeStamps.add(new Date());
userDisconnectLogs.put(userId, timeStamps);
}
for (Entry<String, LinkedList<Date>> entry : userDisconnectLogs
.entrySet()) {
String key = entry.getKey().toString();
;
LinkedList<Date> value = entry.getValue();
System.out.println("key: " + key + " value: " + value.size());
}
}
Спасибо!
Здесь для hashMap ключ должен быть уникальным. И из этого кода кажется, что ключ всегда такой же, поэтому все время он будет переопределять данные.
addNewDateEntry()
?