Java HashTable排序2种方法
1. 用ArrayList的sort排序功能
Hashtable ht = new Hashtable();
ht.Add("dd", "value2");
ht.Add("cc", "value3");
ht.Add("bb", "value4");
ht.Add("aa", "value5");
ArrayList list = new ArrayList(ht.Keys);
list.Sort();
foreach (string str in list)
{ Console.WriteLine(str+":"+ht[str]);
}
运行结果
aa:value5 bb:value4 cc:value3 dd:value2
上面例子按照key的每一个字符的ASCII的值就行排序的。从左到右比较每个字符的Ascii的值,直到满足两个字符的ASCII的值不同即停止比较。
2. 用Collections.sort自定义排序
Hashtable<String, String> h = new Hashtable<String, String>(); h.put("6", "666"); h.put("8", "888"); h.put("2", "222"); <br>for (String key : h.keySet()) System.out.println(key); System.out.println("----------------------------------------------------------"); List<String> v = new ArrayList<String>(h.keySet()); Collections.sort(v, new Comparator<Object>() { public int compare(Object arg0, Object arg1) { return Integer.valueOf(arg0.toString()) - Integer.valueOf(arg1.toString()); // 升序,参数顺序对调时降序<br> } }); for (String key : v) System.out.println(key + " " + h.get(key));
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。