我有一个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
我该如何做到这一点? 任何帮助将不胜感激。
谢谢。
答案 0 :(得分:2)
map.tailMap(new SessionNode(null, t1), false).clear();