62,621
社区成员
发帖
与我相关
我的任务
分享
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()]);
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;
}
}
public static void main(String[] args) {
List <Hashtable <String, String>> data= new ArrayList <Hashtable <String, String>>();
Hashtable<String, String> user1 = new Hashtable<String, String>();
user1.put("name", "username002");
user1.put("age", "14");
data.add(user1);
Hashtable<String, String> user2 = new Hashtable<String, String>();
user2.put("name", "username001");
user2.put("age", "16");
data.add(user2);
Hashtable<String, String> user3 = new Hashtable<String, String>();
user3.put("name", "username004");
user3.put("age", "20");
data.add(user3);
Hashtable<String, String> user4 = new Hashtable<String, String>();
user4.put("name", "username010");
user4.put("age", "11");
data.add(user4);
System.out.println("before sorting...");
System.out.println(data);
System.out.println("sort by name:");
Collections.sort(data, new Comparator < Hashtable <String, String > >() {
public int compare(Hashtable <String, String> arg0, Hashtable <String, String> arg1) {
return arg0.get("name").compareTo(arg1.get("name"));
}
});
System.out.println(data);
System.out.println("sort by age:");
Collections.sort(data, new Comparator < Hashtable <String, String > >() {
public int compare(Hashtable <String, String> arg0, Hashtable <String, String> arg1) {
return Integer.valueOf(arg0.get("age")).compareTo(Integer.valueOf(arg1.get("age")));
}
});
System.out.println(data);
}
TreeMap(Comparator<? super K> c)
构造一个新的空映射,该映射根据给定的比较器进行排序。