【发布时间】:2015-04-10 13:42:47
【问题描述】:
我有一个实现非重叠范围的对象列表,例如:
1 to 10
11 to 20
21 to 50
51 to 100
他们提供min() 和max() 来检索这些值。
我需要一个数据存储来轻松检索正确的对象,给定一个必须在其区间内的值。
我能想到的最简单的方法是创建一个有序的数组列表,然后简单地遍历它,直到找到正确的间隔。所以在这种情况下,查找是在 O(N) 中完成的。
标准 Java 库中是否有更高效的数据结构来完成这项任务?
【问题讨论】:
-
二分查找需要 O(log n)
-
是的,但是java中是否有满足这个要求的标准数据结构?
-
您的对象是否实现了 Comparable 接口,并在该字段上进行比较?你的对象是什么样的?
-
我自己维护那个对象的类,所以我可以添加任何我想要的东西
标签: java data-structures