可以使用 TreeMap 检索给定键值以上的所有 key/value 对吗?

Can TreeMap be used to retrieve all key/value pairs above a given key value?

我有一段代码可以维护对具有给定 ID 的样本所做的修订图:

private Map<Long, SampleId> sampleRevisionMap = new HashMap<>();

在维护这个的同时,其他线程可以调用以获取自给定修订号以来所做的所有更改。为了找到我做的相关 ID

public Set<SampleId> getRevisionIDs(long clientRevision) {
    return sampleRevisionMap.entrySet().stream()
                .filter(k -> k.getKey() > clientRevision)
                .map(entry -> entry.getValue())
                .collect(Collectors.toSet());
}            

简而言之,给我所有键高于阈值的值。

有没有更好的方法来使用有序地图,即 java.utils.TreeMap?

是的,您可以通过调用 tailMap:

public Collection<SampleId> getRevisionIDs(long clientRevision) {
    return sampleRevisionMap.tailMap(clientRevision).values();
}    

以上还包括映射到 clientRevision 的值。如果您想要上面的所有内容,请改用 clientRevision+1