任何人都可以解釋當我們嘗試打印存儲在其中的數據時,數據是如何自動排列在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