1
我創建的HashMap像使用問題比較接口
ArrayList<HashMap<?,?>> var = new ArrayList<HashMap<?,?>>();
我的包含HashMap的ArrayList一個排序包含字符串值「名」與主要「名」。什麼我想通過名稱,以便可以進行排序的ArrayList我用比較器來做這個嗎? 請幫幫我。
我創建的HashMap像使用問題比較接口
ArrayList<HashMap<?,?>> var = new ArrayList<HashMap<?,?>>();
我的包含HashMap的ArrayList一個排序包含字符串值「名」與主要「名」。什麼我想通過名稱,以便可以進行排序的ArrayList我用比較器來做這個嗎? 請幫幫我。
ArrayList<HashMap<String,String>> var = new ArrayList<HashMap<String,String>>();
Collections.sort(var, new Comparator(){
public int compare(Object o1, Object o2)
{
Map map1 = (Map) o1;
Map map2 = (Map)o2;
String name1 = (String) map1.get("name");
String name2 = (String) map2.get("name");
if(name1 != null){
return name1.compareTo(name2);
} else if(name2 != null){
return name2.compareTo(name1);
}else{
return 0;
}
}
});
這是答案。
你可以嘗試這樣的事情。
public int compare(Object o1, Object o2) {
String one = (String)((HashMap)o1).get("name");
String two = (String)((HashMap)o2).get("name");
return one.compareTo(two);
}
我還沒有編譯這個,所以一定要檢查它的正確性。 =)
使用Map(而不是Map) - 不使用泛型不推薦使用。也請注意map1.get(「name」)沒有空值檢查。但除此之外 - 這將做到這一點。 –
amit
2011-06-02 06:36:36
我寫的只是一個模板。 – 2011-06-02 06:46:21
哦,我只是意識到我們可以做到這一點。 :) – Rudy 2011-06-02 06:47:16