如何在TreeMap中获取超过某些键的值

时间:2013-04-11 20:07:13

标签: java collections treemap

我有一个TreeMap,键值对为SessionIdNode

private class SessionNode 
{
    String sessionid;
    Timestamp time;


    private SessionNode (String sessionid, long  d)
    {
        this.time = new Timestamp(d);
        this.sessionid = sessionid;
    }


    public int hashCode()
    {
        return sessionid.hashCode();

    }

    public boolean equals(SessionNode node)
    {
        return this.sessionid.equals(node.sessionid);
    }


}

此类在TreeMap内部使用,如下所示:

private final Comparator< SessionNode> sessionNodeComparator = new Comparator<SessionNode>() {
        @Override public int compare(SessionNode s1, SessionNode s2) 
        {
            return ((SessionNode)s1).time.compareTo(s2.time);   
        }           
    };

private Map <SessionNode , SessionNode> map = new TreeMap <SessionNode , SessionNode>( sessionNodeComparator);

现在,我的问题是,它根据自定义比较器对SessionNodes进行排序,这基本上是根据时间的。

现在说给定时间t1,我需要删除树形图中具有SessionNode时间戳值&gt;的所有键。 T1

我该如何做到这一点? 任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:2)

map.tailMap(new SessionNode(null, t1), false).clear();