我有一個帶有字母數字值的HashTable
。我想排序他們。
我該如何實現它?按值(包括字母數字)排序哈希表
0
A
回答
2
HashTable
不保留該順序。
所以最好創建一個List
出來並排序。
你需要用你的類型分爲一類,然後實現一個比較所有類型的值(在你的任期)一比較,
class Foo implements Comparator<Foo>{
private int no;
private String alpha;
//+getter/setters
public int compare(Foo f1, Foo f2){
//put your logic here
}
}
0
爲什麼?你大概會選擇HashTable而不是TreeMap,因爲它具有更好的性能(並且沒有排序)。如果你不想要性能,並且你想要訂購,可以使用TreeMap。
0
如果你不希望創建一個新的類來保存鍵/值的關係和它,你不感興趣的一個TreeMap,然後像下面也將工作:
ArrayList<Entry<String,String>> list = new ArrayList<Entry<String,String>>();
list.addAll(map.entrySet());
Collections.sort(list, new Comparator<Entry<String,String>>() {
@Override
public int compare(Entry<String, String> o1, Entry<String, String> o2) {
//your logic here;
}
});
0
第一個問題 - 你的意思是排序的價值,或者你的意思是排序的關鍵?
如果您只想按順序訪問排序值,最好的方法是創建列表或數組,然後進行排序。
對於值:Arrays.sort(table.values().toArray())
或Collections.sort(new ArrayList(table.values()))
對於鍵:Arrays.sort(table.keySet().toArray())
或Collections.sort(new ArrayList(table.keySet()))
更多關於這些排序方法:Arrays.sort()或Collections.sort()。
如果你想重複使用基於排序後的鍵,你會更好地使用TreeMap。
如果您反覆想要基於排序後的值(而不是按鍵)進行訪問,那麼您總是可以按順序插入LinkedHashMap,這將保持排序。
相關問題
- 1. 按值按字母順序排列哈希映射
- 2. Perl按哈希值排序哈希
- 3. 紅寶石陣列中的排序哈希按字母順序
- 4. 如何使用「=」和「。」來排序哈希字母數字鍵。
- 5. 按哈希表中的值排序 - Ruby
- 6. redis.py - 按特定字段排序哈希
- 7. 如何按值排序哈希數組?
- 8. 排序字典哈希
- 9. 字母數字排序按照升序排列數值?
- 10. 按字母排序列表
- 11. 按字母排序數組?
- 12. 按字母排序數組
- 13. 按字母排序數組?
- 14. 在SQL Server排序nvarchar列其中包括字母數字
- 15. 按字母排序
- 16. 按字母順序排序,然後按字母順序排列
- 17. 在python中按字母排序字母表中的字母
- 18. 按價值排序2鍵哈希
- 19. 按唯一值排序哈希
- 20. 按值排序哈希映射
- 21. PHP按字母數字子串值排序多維數組值
- 22. 按字母順序排序元素,然後按數字排序
- 23. 排序在Python中 - 如何排序包含字母數字值的列表?
- 24. 按字母數字排序的NSSortDescriptor
- 25. 按數字順序排列數組列表然後按字母排序
- 26. 按數字排序記錄,然後按字母排序MySQL
- 27. 排序字母數字數組列表按照升序
- 28. 基於包含字母數字值的鍵排序python字典
- 29. 按字母順序排序
- 30. 按字母順序排序
**歡迎使用StackOverflow!**請嘗試使您的問題標題**儘可能短/表達**。另外,幫助他人瞭解**你的意思。謝謝! ;-) – 2011-05-12 11:23:05