List
按照 用户年龄进行排序
User对象
@Data
@NoArgsConstructor
@ToString
class User implements Comparable<User> {
private String name;
private Integer age;
/**
* 重写 compareTo 方法
*
* @param User
* @return
*/
@Override
public int compareTo(User User) {
// 降序
if (this.age.compareTo(User.age) == -1) {
return 1;
} else if (this.age.compareTo(User.age) == 1) {
return -1;
} else {
// 如果相等 按照名称排序
return this.name.compareTo(User.name);
}
/**
* 升序
* return this.age.compareTo(User.age);
*/
}
}
public static void main(String[] args) {
List<User> users = new ArrayList<>(16);
User user = new User("张三", 20);
User user1 = new User("李四", 17);
User user2 = new User("王五", 22);
users.add(user);
users.add(user1);
users.add(user2);
User user3 = new User("赵六", 45);
users.add(user3);
Collections.sort(users);
users.forEach(user4 -> {
System.out.println(user4.toString());
});
}
结果:
User(name=赵六, age=45)
User(name=王五, age=22)
User(name=张三, age=20)
User(name=李四, age=17)