List对象集合自定义排序
最近开发个人博客项目的时候,遇到了一个难点,如何排序分类Type
集合呢?
Type.java:
@Data
public class Type {
private Long id;
private String name;
private List<Blog> blogs = new ArrayList<>();
}
假设现在可以从数据库获取到Type
集合,那么我想根据该分类的博客数量进行排序该如何呢?
后来参考了该篇博客: 根据list集合某个字段进行排序
例子:
List<Student> students = new ArrayList<>();
students.add(new Student("abc", 12.124));
students.add(new Student("bcd", 20.214));
students.add(new Student("cde", 17.321));
//自定义从小到大排序
students.sort((x, y) -> Double.compare(x.getAge(), y.getAge()));
//这方法需要jdk1.8以上
排序Type集合,要根据分类的博客数量,可以用x.getBlogs().size()
,默认是从小到大排序,要从大到小排序的话 x,y
交换一下位置就行了:
//给type列表按照博客数量进行从大到小排序
typeList.sort((x,y)->
Integer.compare(y.getBlogs().size(),x.getBlogs().size()));
源码:
就解决问题了。。。