【发布时间】:2019-03-21 11:46:18
【问题描述】:
在 Java 中是否有实现Map 接口并有效保存具有连续整数键的元素数组的数据结构?
在我看来,为了达到最佳效率,它相当于在Map接口中包装一个带有索引偏移值的数组或ArrayList,或者一个带有哈希函数f(key) = key - offset和最小值的哈希表支持数组。
我知道这很简单,但我不想重新发明轮子。 JDK中有这样的数据结构吗?或者有没有提供实现的库?
【问题讨论】:
-
你能举个例子吗?“具有连续整数键的元素数组”?这样的课程会是什么样子?
-
我不确定这个解决方案的“效率”有多高,假设哈希映射已经是 O(1)。如果您使用整数作为键,则哈希码中的开销可以忽略不计
-
瞧:ideone.com/MTXAso(我不能保证它会正常工作)
-
@Lino,
SparseArray没有实现Map接口 -
@ShreckYe 您可以获得的效率增益是主观的(散列函数、数据类型、项目数等)。但是,有 Map 接口的替代实现。例如,看看bitbucket.org/trove4j/trove,它尽最大努力使用原语而不是包装器。
标签: java dictionary data-structures