java中对list排序问题

来源:互联网 发布:tplink网络交换机 编辑:程序博客网 时间:2024/05/17 02:35

1、 如果list集合里面存放的是基础数据类型和String 怎么可以直接调用 Collections类的sort() 方法

List<String> list = new ArrayList<String>();list.add("2");list.add("1");list.add("4");list.add("3");Collections.sort(list);

但是这种方法只能是ASC升序排序 如果想要DESC降序排序则必须 重写  Collections.sort  的 compare方法

final String type = "DESC";Collections.sort(list, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type));return sortType ? o1.compareTo(o2) : o2.compareTo(o1) ;}});

2、 list里面存放的是对象 则 重写  Collections.sort  的 compare方法  比较对象的某个属性 当然也可以是对个属性 

final String type = "DESC";Collections.sort(list, new Comparator<Cat>() {@Overridepublic int compare(Cat o1, Cat o2) {Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type));Integer size = o1.getSize();Integer size1 = o2.getSize();return sortType ? size.compareTo(size1) : size1.compareTo(size) ;}});





0 0
原创粉丝点击