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原创文章,未经本站允许不得转载。