除了排序和排序之外,java中 treemap 数据结构的优势是什么? treemap 数据结构如何在内部工作?
答案 0 :(得分:5)
Treemap的主要优点是它允许以排序顺序存储键值映射。 Treemap内部使用红黑树。
来自javadocs:
来自Wiki的基于红黑树的NavigableMap实现。地图已排序 根据其键的自然顺序,或由比较器 在地图创建时提供,具体取决于使用的构造函数。
此实现提供了保证的log(n)时间成本 containsKey,get,put和remove操作。算法是 在Cormen,Leiserson和Rivest的介绍中进行改编 到算法。
红黑树:
红黑树是一种自平衡二叉搜索树,a 计算机科学中使用的数据结构。自我平衡是 通过用两种颜色中的一种绘制每个节点来提供(这些是 通常称为“红色”和“黑色”,因此称为树木的名称 这样一种方式,由此产生的彩绘树满足一定的 不允许它变得非常不平衡的属性。 修改树时,随后重新排列新树 重新粉刷以恢复着色属性。属性是 以这种重新排列和重新着色的方式设计 有效地执行。树的平衡并不完美,但它 足以让它保证在O(log n)时间内搜索, 其中n是树中元素的总数。插入, 和删除操作,以及树重新排列和 重新着色也在O(log n)时间内进行。[1]
要了解有关Reb Black树的更多信息,请查看:http://en.wikipedia.org/wiki/Red%E2%80%93black_tree
要详细了解树形图检查:http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html
答案 1 :(得分:1)
如果你的意思是TreeMap优于HashMap,那就没有了。事实上,HashMap优于TreeMap - 它更快。至于内部impl,您可以从Oracle站点或从http://sourceforge.net/projects/jdk7src/
下载标准的lib src