List集合中的对象根据属性排序

布满荆棘的人生 2022-09-24 06:25 303阅读 0赞

集合类List存放的数据,默认是按放入时的顺序存放的.比如,依次放入A,B,C, 则取出的顺序也是A,B,C.实际场景中,我们有时需要根据自定义规则对List集合中的元素进行排序,怎么实现呢?

我们可以通过实现Comparator接口来自定义排序规则.实现它的public int compara(Object o1, Object o2)方法,然后使用Conllections的sort方法来进行排序.

示例,我们按照行政区划降序排列

  1. // 按行政区划代码升序排列
  2. Collections.sort(returnList, new Comparator<VehRealpass>(){
  3. /**
  4. * int compare(VehRealpass o1, VehRealpass o2) 返回一个基本类型的整型
  5. * 返回负数表示:o1 小于o2,
  6. * 返回0 表示:o1等于o2,
  7. * 返回正数表示:o1大于o2.
  8. */
  9. @Override
  10. public int compare(VehRealpass o1, VehRealpass o2) {
  11. // 按行政区划代码升序排列
  12. return o1.getDwdmdm().compareTo(o2.getDwdmdm());
  13. }
  14. });
  15. map.put("realJianKongList", returnList);

returnList为集合,VehRealpass为集合中的对用,dwdmdm是用来排序的属性.

str1.compareTo(str2),对于这个方法,0 表示str1与str2相等 ,1 表示str1大于str2, -1表示str1 小于str2.

效率也挺高的,2000多条,排序用了8ms.

发表评论

表情:
评论列表 (有 0 条评论,303人围观)

还没有评论,来说两句吧...

相关阅读