如何对ArrayList中的某个属性进行排序

部分代码如下:
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这个属性排序了。
最好给个能运行的源码
先谢了!

这个结果是降序的,升序的话条件换下
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;
}
}
});
温馨提示:内容为网友见解,仅供参考
无其他回答

java arraylist 按照对象的属性排序
List中的元素是对象的话,若要按该List中元素的某个属性进行排序,那么应该重写里面元素的hashCode和equals方法,然后再排序。比如该问题要重写course的hashCode和equals方法

java如何对ArrayList中对象按照该对象某属性排序
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class ComparableTest { public static void main(String[] args) { Comparator<Student> comparator = new Comparator<Student>(){ public int compare(Student s1, Student s2) { \/\/先排年龄 if(s1.age!

使用ASP.NET ArrayList对象创建数组和排序的示例
创建ArrayList数据项是用Add()方法添加到ArrayList的。以下代码创建一个新的ArrayList对象,命名为mycountries,并加入4个数据项:还可以用Sort()方法为ArrayList按字母顺序或数字顺序排序:还可以用Sort()方法为ArrayList按字母顺序或数字顺序排序:要想按倒序排序,可在Sort()方法的后面使用Reverse()方法:你...

如何实现按照List集合中对象某个属性排序
给集合排序 ,常见的方法是给集合提供1个比较器Comparator.import java.util.*;class Stu{\/\/学生类String name;int age;public Stu(String name,int age) {this.name = name;this.age=age;}@Overridepublic String toString() {return "姓名:"+name+" 年龄:"+age;}}public class Test {public ...

java 怎么将List里面数据排序
\/\/证明String的自然排序即ASCII码从小到大排序,最后一步。第二点,你的要求是“要按ArrayList里面的第1、2.4数据进行排序,分别怎么做啊”,这个问题的描述有问题,或者不详细,arryList2、arrayList3、arrayList4任何一个里面一共就add了3个数据,哪来第4个。如果是分别对arrayList2\\3\\4里面的数据...

java ArrayList 排序
的`main`方法中,首先创建了一个`ArrayList`,然后使用for循环填充数据。接着,我们调用`Collections.sort`方法,传入`list`和`MyComparator`实例,对列表进行排序。排序后,遍历并打印出排序后的日期。通过这种方式,我们可以根据日期对`ArrayList`进行升序或降序排列,以直观展示书籍按照日期的先后顺序。

java如何让list按照list里面的某个字段排序,list里面的有很多字段!
Integer>>(); init(data); System.out.println("排序前:"); System.out.println(data); sort(data); System.out.println("排序后:"); System.out.println(data); } private static void sort(List<Map<String, Integer>> data) { Collections....

JAVA如何根据List中对象的属性进行对象排序(江湖救急!)
public class SortList {private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");public static void main(String[] args) {List<String> dates = new ArrayList<String>();dates.add("2014-10-02");dates.add("2013-12-01");dates.add("2014-11-02");dates.add("2014-01-...

java 怎么将List里面数据排序
util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ArrayListOrder {public static void main(String[] args) {List<List<Integer>> list = new ArrayList<List<Integer>>();List<Integer> arrayList1 = new ArrayList<Integer>();arrayList...

如何实现ArrayList的反转排序?
如果只是想对Index反转,可以继承ArrayList,写一个自己的类,然后再该类中重写索引 public override Object this[int index]{ get{返回Index为Count-1-index的数据} set{处理Index为Count-1-index的数据} } ArrayList arr = new ArrayList();要排序,用 arr.Sort();要...

相似回答