import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Test{
List<Hashtable<String,String>> data = new ArrayList<Hashtable<String,String>>();
private static void printlHt(Hashtable hashtable){
Set set = hashtable.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
String key = it.next().toString();
System.out.println(key + " -> " + hashtable.get(key).toString());
}
}
public static void main(String[] args)
{
Hashtable<String,String> table = new Hashtable<String,String>();
table.put("username002","14");
table.put("username001","16");
table.put("username004","20");
table.put("username010","11");
printlHt(table);
Map.Entry[] set = getSortedHashtable(table);
System.out.println("-------------------------------");
for(int i = 0;i < set.length;i++){
System.out.print(set[i].getKey().toString()+"-->");
System.out.println(set[i].getValue().toString());
}
}
public static Map.Entry[] getSortedHashtable(Hashtable h)
{
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
//这里解释下:set是h用entrySet返回的包含键-值的集合 所以这里必须用Map.Entry[set.size()]返回指定类型的数值 数值的值时
//指定数组的值 是Map.Entry的接口类型的值
Arrays.sort(entries,new Comparator()
{
public int compare(Object arg0,Object arg1)
{
int key1 = Integer.parseInt(((Map.Entry) arg0).getValue().toString());
int key2 = Integer.parseInt(((Map.Entry) arg1).getValue().toString());
return ((Comparable) new Integer(key1)).compareTo(new Integer(key2));
}
});
return entries;
}
}