如何对ArrayList中的某个属性进行排序
部分代码如下:intI;List<Map<String,Object>>list=newArrayList<Map<String,Object>>();for(curso...
部分代码如下:
int I;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){
Map<String, Object> map = new HashMap<String, Object>();
String ID=cursor.getString(idIndex);
String RowId=cursor.getString(RowIdIndex).trim();
String RemindContent=cursor.getString(RemindContentIndex).trim();
String RemindTime=cursor.getString(RemindTimeIndex).trim();
map.put("RecordID", ID);
map.put("RowId",RowId);
map.put("RemindContent",RemindContent);
map.put("RemindTime", RemindTime);
list.add(map);
I++;
}
其中"RemindTime"属性为int,现在想要根据这个属性的大小,对list进行排序
也就是说,经过若干个上述执行,得到一个属性:RemindTime无序的list,现在要对根据这个list中的RemindTime重新得到一个有序的list.
注:这是一个从数据库中查询得到的一个记录数组,请不要说,直接在SQL语句中使用Order by RemindTime就可以直接实现,其实,不是这么简单的,我要实现的是从不同的表中查询得到结构一样的记录集结果,这只是其中的一个结果,所以,多个结果累加到一起,得到最后一个混合的结果后,就需要重新对RemindTime这个属性排序了。
最好给个能运行的源码
先谢了! 展开
int I;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){
Map<String, Object> map = new HashMap<String, Object>();
String ID=cursor.getString(idIndex);
String RowId=cursor.getString(RowIdIndex).trim();
String RemindContent=cursor.getString(RemindContentIndex).trim();
String RemindTime=cursor.getString(RemindTimeIndex).trim();
map.put("RecordID", ID);
map.put("RowId",RowId);
map.put("RemindContent",RemindContent);
map.put("RemindTime", RemindTime);
list.add(map);
I++;
}
其中"RemindTime"属性为int,现在想要根据这个属性的大小,对list进行排序
也就是说,经过若干个上述执行,得到一个属性:RemindTime无序的list,现在要对根据这个list中的RemindTime重新得到一个有序的list.
注:这是一个从数据库中查询得到的一个记录数组,请不要说,直接在SQL语句中使用Order by RemindTime就可以直接实现,其实,不是这么简单的,我要实现的是从不同的表中查询得到结构一样的记录集结果,这只是其中的一个结果,所以,多个结果累加到一起,得到最后一个混合的结果后,就需要重新对RemindTime这个属性排序了。
最好给个能运行的源码
先谢了! 展开
1个回答
展开全部
这个结果是降序的,升序的话条件换下
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// TODO Auto-generated method stub
int time1 = (Integer) o1.get("RemindTime");
int time2 = (Integer) o2.get("RemindTime");
if (time1 > time2) {
return -1;
} else if (time1 == time2) {
return 0;
} else {
return 1;
}
}
});
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// TODO Auto-generated method stub
int time1 = (Integer) o1.get("RemindTime");
int time2 = (Integer) o2.get("RemindTime");
if (time1 > time2) {
return -1;
} else if (time1 == time2) {
return 0;
} else {
return 1;
}
}
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询