2012-03-23 23 views
0

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

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; 

        } 
       }); 
+1

包含HashMap是无序的。 – SLaks 2012-03-23 06:07:57

+0

你已经展示了一张地图列表*,但你的例子只是谈论3个地名。什么是映射? – 2012-03-23 06:10:32

+0

名称是我已经解析并在列表视图中列出的XML标记。我想根据名称,编号等来安排该列表。现在如何比较它们? – captaindroid 2012-03-23 06:14:21

回答

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")); 
    } 

这里的“名”是你在插入使用put方法HashMap中时提供的密钥。

EXTRA

如果你想分析的double值,那么你可以使用Double.parse()方法。

return Double.compare(o1.get(value1),o1.get(value2));

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

希望这会帮助你。

+0

suprrr ...这个作品伙计。 Thanx! – captaindroid 2012-03-23 06:55:08

+0

So Enjoy coding ....... – Prem 2012-03-23 06:56:06

+0

这里是否有任何错误'String s1 = o1.get(“score”); \t \t \t \t \t \t \t \t字符串s2 = o2.get( “分数”); \t \t \t \t \t \t \t \t双s1Value = Double.parseDouble(S1); \t \t \t \t \t \t \t \t双s2Value = Double.parseDouble(S2); \t \t \t \t \t \t \t \t返回Double.compare(s1Value,s2Value);' 它为字符串,但没有工作的工作为双正如我上面编写代码。 – captaindroid 2012-03-23 07:13:29

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); 
       { 
        ........ 
        ...... 
       }  
    } 
相关问题