如何比较HashMap的字符串并安排它们?

时间:2012-03-23 06:07:15

标签: android string

我的名字为Mink,Mark,Aashis。如何比较它们并按字母顺序排列它们。 Collections.sort()不适合我。在这里,我应该有结果Aashis,Mark and Mark

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", XMLfunctions.getValue(e, "name"));
                mylist.add(map);

                 Collections.sort( mylist, new Comparator<HashMap<String,String>>(){                    

                    public int compare(HashMap<String, String> lhs,
                            HashMap<String, String> rhs) {
                            //how do i compare string name
                        return 0;

                    }
                 });

2 个答案:

答案 0 :(得分:2)

Collections.sort(list, new Comparator(){

public int compare(HashMap<String, String> o1, HashMap<String, String> o2) {
        return (o1.get("name")).compareToIgnoreCase(o2.get("name"));
    }

此处“name”是您在使用put方法插入HashMap时提供的密钥。

EXTRA

如果要解析double值,则可以使用Double.parse()方法。

返回Double.compare(o1.get(value1),o1.get(value2));

注意 - 这种方法的好处在于您可以通过任何属性甚至属性组合对任何对象进行排序。例如,如果您有具有属性收入和dataOfBirth的Person类型的对象,则可以定义Comparator的不同实现,并根据您的需要对对象进行排序。

希望这会对你有所帮助。

答案 1 :(得分:2)

试试这段代码

插入值

public ArrayList<HashMap<String, String>> list;
list = new ArrayList<HashMap<String, String>>();

for (int i = 0; i < 5; i++) {

            HashMap<String, String> info = new HashMap<String, String>();

            info.put("title", "gdfgdfgdfgdfggdfgfdgdgdgdffghfghfgh");
            info.put("time", "44:55");
            info.put("view", "54,353");

            list.add(info);

        }

获取并比较

String title1 = ketan;



for (int i = 0; i < list.size(); i++) {

HashMap<String, String> map = new HashMap<String, String>();
        map = list.get(i);

        if(map.get("title")==title1);
                 {
                    ........
                    ......
                 }      
    }