List集合中的对象根据属性排序
集合类List存放的数据,默认是按放入时的顺序存放的.比如,依次放入A,B,C, 则取出的顺序也是A,B,C.实际场景中,我们有时需要根据自定义规则对List集合中的元素进行排序,怎么实现呢?
我们可以通过实现Comparator接口来自定义排序规则.实现它的public int compara(Object o1, Object o2)方法,然后使用Conllections的sort方法来进行排序.
示例,我们按照行政区划降序排列
// 按行政区划代码升序排列
Collections.sort(returnList, new Comparator<VehRealpass>(){
/**
* int compare(VehRealpass o1, VehRealpass o2) 返回一个基本类型的整型
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1等于o2,
* 返回正数表示:o1大于o2.
*/
@Override
public int compare(VehRealpass o1, VehRealpass o2) {
// 按行政区划代码升序排列
return o1.getDwdmdm().compareTo(o2.getDwdmdm());
}
});
map.put("realJianKongList", returnList);
returnList为集合,VehRealpass为集合中的对用,dwdmdm是用来排序的属性.
str1.compareTo(str2),对于这个方法,0 表示str1与str2相等 ,1 表示str1大于str2, -1表示str1 小于str2.
效率也挺高的,2000多条,排序用了8ms.
还没有评论,来说两句吧...