2015-07-12 54 views
-1

我從JSON數據,並把在ListView中HashMap和節目現在我想在此HashMap和秀ListVeiw如何排序的HashMap <String,字符串> DESC

這是我的代碼

部分排序倒序數據
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

科目,測試

文本,在這種正在測試


ID,2

名,存款準備金率

電子郵件,存款準備金率@ email.com

科目,測試

文字,你好,這是測試


ID ,3

name,lll

電子郵件,LLL @ email.com

科目,測試

文字,你好,這是測試

我想在這裏展示

ID,3

name,lll

電子郵件,LLL @ email.com

科目,測試

文字,你好,這是測試


ID,2

名,存款準備金率

電子郵件,存款準備金率@電子郵件。COM

科目,測試

文字,你好,這是測試


ID,1

名,薩德克

電子郵件,@薩德克email.com

科目,測試

text,嗨,這是測試

+1

使用'TreeMap'而不是'HashMap'。 –

+0

HashMap的鍵集是無序的。快速搜索一下TreeMap/HashMap/LinkedHashMap的區別,因爲這個問題之前被問過。 – runDOSrun

+0

[按值排序HashMap]的可能重複(http://stackoverflow.com/questions/8119366/sorting-hashmap-by-values) – runDOSrun

回答

2

根據定義,HashMap是未排序的。請參閱Javadoc

此類不能保證地圖的順序;在 特別是,它不能保證該訂單隨着時間的推移將保持恆定 。

如果需要訂購,使用Java的SortedMaps之一:

進一步提供關於鍵的總體排序的Map。該地圖是 根據其按鍵的自然順序排序,或由 比較器按排序地圖創建時間提供。

java.util有兩個標準實現 - TreeMapConcurrentSkipListMap

相關問題