如何使用NavigableIndex从cqengine IndexedCollection中获取第一个或最后一个项目

我有配置了NavigableIndex的com.googlecode.cqengine.IndexedCollection对象.我需要从索引的索引或迭代器中获取第一个或最后一个项目.

我想这应该是微不足道的.我知道我可以使用queryOptions对象创建Query对象,使用它从IndexedCollection中检索迭代器并获取第一个对象,但我不确定它是否对性能最佳.当然它不优雅.

最佳答案 在miradham的帮助下,我发现我需要记住索引,因为如果我们有更多的索引,很难找到合适的索引.它只适用于NavigableIndex,我们不能迭代基类索引

collection = new ConcurrentIndexedCollection<Data>();
index = NavigableIndex.onAttribute(Data.UNIQUE_TIMESTAMP);
collection.addIndex(index);

当我有索引时:

try (CloseableIterator<KeyValue<String, Data>> iterator = indexUniqueTimestamp.getKeysAndValuesDescending(null).iterator()) {
        if (iterator.hasNext())
            return iterator.next().getValue();
    }
    return null;
点赞