package test.map;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
/*×
* 可以构造面向对象内存数据库
*/
public class TestHashMap {
@SuppressWarnings( { "unchecked", "unchecked" })
public static Map.Entry<String,Person>[] getSortedHashtableByKey(Hashtable<String,Person> h) {
Set<Map.Entry<String,Person>> set = h.entrySet();
Map.Entry<String,Person>[] entries = set.toArray(new Map.Entry[set.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Object key1 = ((Map.Entry) arg0).getKey();
Object key2 = ((Map.Entry) arg1).getKey();
return ((Comparable) key1).compareTo(key2);
}
});
return entries;
}
@SuppressWarnings( { "unchecked", "unchecked" })
public static Map.Entry<String,Person>[] getSortedHashtableByValue(Hashtable<String,Person> h) {
Set<Map.Entry<String,Person>> set = h.entrySet();
Map.Entry<String,Person>[] entries = set.toArray(new Map.Entry[set.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Person key1 = (Person)((Map.Entry)arg0).getValue();
Person key2 = (Person)((Map.Entry)arg1).getValue();
return ((Comparable) key1.age).compareTo(key2.age);
}
});
return entries;
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Hashtable<String, Person> t = new Hashtable<String, Person>();
t.put("10-11 02:45德利城VS德罗赫达联队",new Person("lcl",28));
t.put("10-11 06:45朗福德城VS谢尔伯恩",new Person("fxx",29));
t.put("10-11 05:00EL国民队VS托拉卡",new Person("fx",23));
for(Map.Entry<String,Person> ent:getSortedHashtableByValue(t)){
System.out.println(ent.getKey()+":"+ent.getValue().getName());
}
}
public static class Person {
private int age;
private String name;
public Person(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
