JavaAPI或开源库是否提供了一个类似于TreeMap的数据结构,并具有恒定的查找时间?

JavaAPI或开源库是否提供了一个类似于TreeMap的数据结构,并具有恒定的查找时间?,java,data-structures,linked-list,hashmap,treemap,Java,Data Structures,Linked List,Hashmap,Treemap,我发现树映射具有日志(n)插入和查找运行时复杂性。然而,指向链表中节点的HashMap将提供相同的运行时复杂性,但也提供恒定时间查找,这是一个相当大的优势。但是,您必须自己实现搜索/插入/删除功能。我想知道Java或其他开源库中是否有东西为您提供了这一功能 我确实意识到TreeMap的红黑树在某些情况下可能比HashMap更适合,但在其他情况下,自然排序的恒定时间查找更适合 注意:我知道LinkedHashMap为插入顺序提供了一个内置的链表,但我要说的是像树形图一样保持自然顺序。只有当您的键遵

我发现树映射具有日志(n)插入和查找运行时复杂性。然而,指向链表中节点的HashMap将提供相同的运行时复杂性,但也提供恒定时间查找,这是一个相当大的优势。但是,您必须自己实现搜索/插入/删除功能。我想知道Java或其他开源库中是否有东西为您提供了这一功能

我确实意识到TreeMap的红黑树在某些情况下可能比HashMap更适合,但在其他情况下,自然排序的恒定时间查找更适合


注意:我知道LinkedHashMap为插入顺序提供了一个内置的链表,但我要说的是像树形图一样保持自然顺序。

只有当您的键遵循可以在数据结构中利用的模式时

一个很好的例子是
TrieMap
。有关说明和包含对实现的引用的讨论,请参阅


不久前我发布了一个Trie实现。不知道它的效率有多高,但它是有效的。从那篇文章开始,我当然对它进行了改进。

链接哈希映射是否提供了恒定的时间查找?我听上去不太对。在所有操作中不是都有O(N)最坏的情况吗?我认为它有O(N)最坏的情况,但如果我错了,请纠正我。链接哈希映射是否也不提供桶之间的自然排序迭代。我不这么认为。@Dlotan是的,你是对的。这是一个mis类型:-)不是非常恒定的时间操作。@Justin-
O(M)
lookup如果您的键遵循恒定长度的模式,则可以说是恒定的。同意,只是想确保包含信息。我编写了一个节省空间的基数trie实现: