如果我有一个像这样的大番石榴表:
Table<Foo, Range<Long>, Bar> myTable;
而且我有一个 long 值和一个 Foo 对象 - 我想获取 Bar 对象,它的 Range 包含我的 long。
现在,我能做的最好的事情是在我需要的 Range 中使用 Foo 键来获取所有 Bar:
Map<Range<Long>, Bar> row = cache.row(myFoo);
for (Range<Long> range : row.keySet()) {
if (range.contains(myLong)) {
return Arrays.asList(sample.get(myLong));
}
}
如您所见,我正在从表中获取行,并遍历范围以寻找我的一个 Bar,其中包含 myLong 的封闭范围。
有没有更好的方法可以在没有 for 循环的情况下找到我的对象?以比该循环更快的方式从该 Ranges 列获取 RangeMap?