我有一个ConcurrentHashMap,它包含一个字符串作为键,LinkedList作为一个值。列表的大小不应该超过5.我试图在列表中添加一些元素,但是当我打印出Map时,我只看到最后添加的元素。这是我的代码:
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());
}
}
谢谢!
答案 0 :(得分:0)
这里hashMap键必须是唯一的。从这段代码看,密钥总是一样的,所以它总是会覆盖数据。