目前,我使用 TreeMap
来存储一些 x 和 y 坐标,但与 ArrayList
或 HashMap
相比,迭代速度非常慢。我使用它是因为我需要 subMap()
方法,这样即使确切的 X 值(键)不存在,我也可以获得确定范围内的 X 值。
LinkedHashMap
的速度与 HashMap
几乎相同,我可以按插入顺序迭代键(我需要插入顺序或按比较器排序,就像在 TreeMap 中完成的那样),但我没有 submap()
方法。在 TreeMap 中我可以非常快速地生成子图。
是否有任何数据结构或某种方法可以比 TreeMap 更快地存储有序值(通过插入顺序或比较器),即使确切的值不在 map 中,也可以获取一定范围内的子 map ?我的意思是,也许我想要 2 到 25 之间的值,但 2 不存在,最接近的是 3,因此它将返回 3 到 25 之间的子图。或者有什么方法将此功能添加到 LinkedHashMap
中?
最佳答案
听起来你需要一个 TreeMap,它的迭代速度并不比 LinkedHashMap 慢多少,并且可以做你真正想要的事情。由于 HashMap 是无序的,因此 subMap 没有任何意义。
关于java - 如何用LinkedHashMap获取子图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674669/