java的List实体类按照某个字段倒序排序
时间: 2023-10-18 18:24:03 浏览: 179
可以使用Java 8的Stream API和Comparator来对List中的实体类按照某个字段倒序排序。比如,假设我们有一个Person类,其中有一个age属性,想要按照age属性倒序排序,可以使用以下代码:
List<Person> persons = new ArrayList<>();
// 添加Person对象到List中
List<Person> sortedList = persons.stream()
.sorted(Comparator.comparingInt(Person::getAge).reversed())
.collect(Collectors.toList());
以上代码中,首先将List转换成Stream,然后使用Comparator.comparingInt方法以Person类的getAge方法为比较器进行排序,同时使用reversed方法将排序结果倒序排列。最后,使用Collectors.toList方法将排序后的结果转换回List类型并返回。
相关问题
java list按照实体类的某一个字段倒序排序代码
假设你有一个实体类 Person
,有一个字段 age
,你可以使用 Comparator
接口实现对 List<Person>
的倒序排序,示例代码如下:
import java.util.Comparator;
import java.util.List;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
// getter and setter for name
public static void sortListByAgeDesc(List<Person> personList) {
// sort using Comparator and lambda expression
personList.sort(Comparator.comparing(Person::getAge).reversed());
}
}
在上面的代码中,我们使用了 Comparator.comparing()
方法来创建一个比较器,它基于 Person
类的 age
字段进行比较。然后我们调用 reversed()
方法来反转排序顺序,最后使用 sort()
方法来对 List<Person>
进行排序。现在你可以通过调用 sortListByAgeDesc()
方法来对你的 Person
列表进行按照年龄倒序排序。
MongoTemplate联表查询以表2字段倒序排列,但是查询结果只有表1字段,该字段是number类型,且正序排序是正确的,为什么倒序错乱了
可能是由于MongoTemplate内部默认的排序方式不同。尝试使用以下代码将第二个参数改为Sort(Direction.DESC, "表2字段"):
Query query = new Query();
query.with(new Sort(Sort.Direction.ASC, "表1字段"));
query.with(new Sort(Sort.Direction.DESC, "表2字段"));
List<表1实体类> result = mongoTemplate.find(query, 表1实体类.class);
这样应该可以实现以表2字段倒序排列,同时查询结果只有表1字段的效果。
相关推荐















