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) ;
}
});