建议使用自定义比较器(灵活有效)
//这是方法Collections 类和自定义的比较器
class AgeComparatorDescending implements Comparator<GasCaijiInfoVo> {
@Override
public int compare(GasCaijiInfoVo p1, GasCaijiInfoVo p2) {
// 根据年总数段进行降序比较
return Integer.compare(p2.getCaijiCount(), p1.getCaijiCount());
}
用的时候进行调用就行了 // 使用自定义的比较器按年龄字段进行降序排序 Collections.sort(list, new AgeComparatorDescending());GasCaijiInfoVo是你需要排序的list的类型
.getCaijiCount()是你需要比较的元素,p1在后面是降序(我这里是降序排列)
Stream流的方法
// 使用流API按年龄字段进行排序 List<Person> sortedList = personList.stream() .sorted(Comparator.comparingInt(Person::getAge)) .toList();
使用 Java 8 引入的流(Stream)API。
我们使用流API的sorted()
方法和Comparator.comparingInt()
方法对personList
列表进行排序。Comparator.comparingInt()
方法接受一个函数引用,用于提取比较的字段(这里是年龄字段)。最后,我们使用toList()
方法将排序后的结果转换为列表。
List<GasCaijiInfoVo> sortedList = list.stream() .sorted(Comparator.comparingInt(GasCaijiInfoVo::getCaijiCount).reversed()) .collect(Collectors.toList());
这里是第一种案例的第二种方法