如何排序HashMap <string,string> DESC

时间:2015-07-12 14:25:29

标签: java android sorting

我从json获取数据并放入HashMap并在ListView中显示现在我想在此HashMap中排序desc数据并在ListVeiw中显示

这是我的代码的一部分

for(int i=0;i<jmsg.length();i++){
    JSONObject c = jmsg.getJSONObject(i);
    String id = c.getString(TAG_ID);
    String name = c.getString(TAG_NAME);
    String email = c.getString(TAG_EMAIL);
    String subj = c.getString(TAG_SUBJ);
    String text = c.getString(TAG_TEXT);

    Log.i("Ekhteraat app ControlPanel", id);

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

    nnews.put(TAG_ID,id);
    nnews.put(TAG_NAME,name);
    nnews.put(TAG_EMAIL,email);
    nnews.put(TAG_SUBJ,subj);
    nnews.put(TAG_TEXT,text);

    msgList.add(nnews);


    nText=nText + subj + "\n";

    tnews=tnews+1;

    ListAdapter adapter = new SimpleAdapter(
                            GetMSGActivity.this, msgList, R.layout.list_item,
                            new String[]{TAG_ID,TAG_NAME,TAG_EMAIL,TAG_SUBJ,TAG_TEXT},
                            new int[]{R.id.id, R.id.name, R.id.email, R.id.subj, R.id.text}
                    );
    list.setAdapter(adapter);
}

请您检查一下如何排序。

我的数据

  

ID,1

     

名,萨德克

     

电子邮件,@萨德克email.com

     

主体,测试

     

text,嗨这是测试

           

ID,2

     

名,RRR

     

电子邮件,RRR @ email.com

     

主体,测试

     

text,嗨这是测试

           

ID,3

     

名,LLL

     

电子邮件,LLL @ email.com

     

主体,测试

     

text,嗨这是测试

我想在这里显示

  

ID,3

     

名,LLL

     

电子邮件,LLL @ email.com

     

主体,测试

     

text,嗨这是测试

           

ID,2

     

名,RRR

     

电子邮件,RRR @ email.com

     

主体,测试

     

text,嗨这是测试

           

ID,1

     

名,萨德克

     

电子邮件,@萨德克email.com

     

主体,测试

     

text,嗨这是测试

1 个答案:

答案 0 :(得分:2)

根据定义,HashMaps未排序。请参阅Javadoc

  

此课程不保证地图的顺序;在   特别是,它不保证订单将保持不变   随着时间的推移。

如果您需要订购,请使用Java的SortedMaps

之一
  

进一步提供其键的总排序的Map。地图是   根据其键的自然顺序或通过a键排序   比较器通常在有序地图创建时提供。

&#128049; - cat &#128054; - dog 有两个标准实施 - TreeMapConcurrentSkipListMap