@Test
void testSort() {
ArrayList<User> users = new ArrayList<>();
users.add(new User("huangqg", 50000));
users.add(new User("songyc", 35000));
users.add( new User("hanxu", 42000));

// core
users.sort((User u1, User u2) -> u2.getSalary() - u1.getSalary());

System.out.println(users);
// [User{name='huangqg', salary=50000}, User{name='hanxu', salary=42000}, User{name='songyc', salary=35000}]
}

class User {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getSalary() {
return salary;
}

public void setSalary(int salary) {
this.salary = salary;
}

private int salary;

public User(String name, int salary) {
this.name = name;
this.salary = salary;
}

@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", salary=" + salary +
'}';
}
}