我有一系列对象沿着由 a 表示的线设置,LinkedHashMap<Foo, Double>
其中第一个字段是对象,第二个字段是它与测量原点的距离。我知道元素是通过增加距离来排序的。我希望能够选择一些位置x
并左右搜索返回的实例Foo
,而不必遍历整个地图。foo.isInteresting()
true
我的第一个想法是做类似的事情:
- 遍历所有条目以找到距离大于的第一个条目
x
- 从这一点开始,向左看所有条目,直到
foo.isInteresting()
- 从这一点开始,正确查看所有条目,直到
foo.isInteresting()
Map
但据我所知,没有办法从某个起点迭代 a 。从我的地图创建两个List
对象并使用是否明智ListIterator
?
交换键和值也不是完全明智的,因为我需要Foo
在我的应用程序的其他地方进行搜索。