我从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,嗨这是测试
答案 0 :(得分:2)
根据定义,HashMaps未排序。请参阅Javadoc:
此课程不保证地图的顺序;在 特别是,它不保证订单将保持不变 随着时间的推移。
如果您需要订购,请使用Java的SortedMaps:
之一进一步提供其键的总排序的Map。地图是 根据其键的自然顺序或通过a键排序 比较器通常在有序地图创建时提供。
🐱 - cat
🐶 - dog
有两个标准实施 - TreeMap和ConcurrentSkipListMap。