list集合的两种排序方法

1.Comparable自然规则排序

//在自定义类Student里面实现Comparable接口,并重写抽象方法compareTo(Student o);
//Collections.sort(集合);

public static void main(String[] args) {

List<Integer> nums = new ArrayList<Integer>();

nums.add(3);

nums.add(5);

nums.add(1);

nums.add(0);

Collections.sort(nums);

}

输出结果:[0,1,3,5]

集合里面是对象的话:

List<ChildDto> childDtos = getChildDtos(list);
Collections.sort(childDtos, new Comparator<ChildDto>(){
@Override
public int compare(ChildDto o1, ChildDto o2) {
if(o1.getUserId() > o2.getUserId()){   // “>”号是正序 “<”是倒序 想要根据谁排序 就用对象get出来
return 1;
}
if(o1.getUserId()==o2.getUserId()){
return 0;
}
return -1;
}
});


封装对象:
@Data
public class ChildDto implements Serializable {
/**
* 用户名
*/
private String name;
/**
* 用户名
*/
private String fullname;
/**
* 头像
*/
private String avatar;
/**
* 名称
*/
private long userId;
/**
* 是否是选定孩子 1是 其他不是
*/
private String selected;
/**
* 监护人类型
*/
private long guardianType;
/**
* 监护人名称
*/
private String guardianName;

}
根据名称排序,比如数据是:学生2、学生4学生1学生3

输出结果:

正序[1,2,3,4]

倒序[4,3,2,1]

猜你喜欢

转载自www.cnblogs.com/houpengwei/p/10670313.html