我创建了一个HashMap的ArrayList,如
ArrayList<HashMap<?,?>> var = new ArrayList<HashMap<?,?>>();
My HashMaps包含一个字符串值“name”,其中包含键“name”。我想要的是按名称对ArrayList进行排序,这样我可以使用Comparator吗? 请帮助我。
答案 0 :(得分:3)
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;
}
}
});
这是答案。
答案 1 :(得分:1)
你可以尝试这样的事情。
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);
}
我没有编译过这个,所以一定要检查一下它是否正确。 =)