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