排序技术遵循TreeMap?

时间:2009-12-17 13:36:30

标签: java data-structures map sorting

当我们尝试打印存储在其中的数据时,是否可以解释数据如何在TreeMap中自动排序?

3 个答案:

答案 0 :(得分:7)

他们不是; TreeMap使用red-black tree来管理数据,并且此树隐式地保持数据的排序。迭代器所要做的就是遍历节点。

答案 1 :(得分:4)

项目已经排序 - 这是通过使用Red-Black Tree在内部存储项目来实现的。

答案 2 :(得分:2)

如果TreeMap存储实现Comparable接口(和String)的对象,则使用.compareTo方法来比较单个字符串并确定排序顺序。

另一方面,您可以在构造TreeMap时提供Comparator,它将使用该对象比较对象并确定排序顺序。您可以使用Comparators比较未实现Comparable的对象,或强制执行不同的排序策略。例如,String.compareTo方法执行区分大小写的比较,但您可以提供String.CASE_INSENSITIVE_ORDER比较器,这将导致不区分大小写的排序。