您的位置:首页 > 编程语言 > Java开发

java中对list排序问题

2016-05-07 10:45 465 查看
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>() {
@Override
public 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>() {
@Override
public 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) ;
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: