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) ;
}
});
本文介绍了在Java中如何使用Collections类的sort()方法对基础数据类型和String进行升序排序,并展示了如何通过重写compare方法实现降序排序。此外,还讨论了当list中存储自定义对象时,如何通过比较对象属性来进行排序。
233

被折叠的 条评论
为什么被折叠?



