向ConcurrentHashMap内的LinkedList添加条目不起作用

时间:2015-03-30 11:18:06

标签: java dictionary linked-list

我有一个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());
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

这里hashMap键必须是唯一的。从这段代码看,密钥总是一样的,所以它总是会覆盖数据。