任何人都可以解释当我们尝试打印存储在其中的数据时,数据是如何自动排列在TreeMap
中的?TreeMap的排序方法?
1
A
回答
7
他们不是; TreeMap使用red-black tree来管理数据,并且该树隐式地保持数据排序。迭代器所要做的就是遍历节点。
4
这些项目已经排序 - 这是通过使用Red-Black Tree在内部存储项目来实现的。
2
如果TreeMap存储实现Comparable接口(和String的对象)的对象,而不是使用.compareTo方法比较各个字符串并确定排序顺序。
另一方面,您可以在构建TreeMap时提供一个Comparator,它将使用该对象比较对象并确定排序顺序。您可以使用Comparators来比较没有实现Comparable的对象,或者执行不同的排序策略。例如,String.compareTo方法执行区分大小写的比较,但您可以提供String.CASE_INSENSITIVE_ORDER比较器,这会导致不区分大小写的排序。
相关问题
- 1. TreeMap中不排序
- 2. 排序一个TreeMap的java
- 3. 使用TreeMap排序问题
- 4. Scala TreeMap陌生;实现逆序排序
- 5. 根据值的数量对TreeMap排序
- 6. Java Treemap放置方法
- 7. Scala 2.8 TreeMap和自定义排序
- 8. 在TreeMap中对ArrayList <String>排序
- 9. 如何使用递减键排序TreeMap?
- 10. treemap升序ID
- 11. [R排序方法
- 12. ArrayList排序方法
- 13. 复杂的排序方法
- 14. 排序列表的方法
- 15. SQL Server ORDER BY - 排序排序方法
- 16. 排序数组没有排序()方法
- 17. 排序方法不正确排序
- 18. 如何用预先排序的数据初始化TreeMap?
- 19. 为什么我的TreeMap没有正确排序?
- 20. TreeMap <String,ArrayList <String>>特定的打印/排序
- 21. PowerShell - $ collection.GetEnumerator()排序方法
- 22. 辅助排序List.Sort方法
- 23. Javascript方法参数排序
- 24. Java日期排序方法?
- 25. Recordset.Sort方法不排序
- 26. Java:反向排序方法
- 27. 优化排序方法
- 28. 日期排序方法
- 29. 测试排序方法
- 30. 自定义排序方法
谢谢你提供的有关红黑树的参考资料。根据这种技术,你可以告诉字符串值如何排列(即)如何JVM决定,一个字符串比父母更大(或者更小) – Hariharbalaji 2009-12-17 13:48:07
@Hari:这是使用字符串的'compareTo'方法 – Fortega 2009-12-17 14:02:38
更一般地说, TreeMap类期望元素实现该方法所属的Comparable接口。或者,您可以将Comparator接口的实现传递给TreeMap的构造函数,该实现允许它存储不实现Comparable的对象(或使用不同的排序顺序)。 – 2009-12-17 14:13:26