public static void main(String[] args) {
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setNickName("李白1");
user1.setScore(21);
user1.setSize(1);
userList.add(user1);
User user2 = new User();
user2.setNickName("李白2");
user2.setScore(22);
user2.setSize(2);
userList.add(user2);
User user3 = new User();
user3.setNickName("李白3");
user3.setScore(20);
user3.setSize(3);
userList.add(user3);
User user4 = new User();
user4.setNickName("李白4");
user4.setScore(21);
user4.setSize(4);
userList.add(user4);
User user5 = new User();
user5.setNickName("李白5");
user5.setScore(25);
user5.setSize(5);
userList.add(user5);
userList.stream().forEach(user -> {
System.out.println(user.getNickName());
});
System.out.println("================================");
userList.sort((u1,u2)->{
/** 按照分数降序排序(分数相等不处理) */
return new Integer(u2.getScore()).compareTo(u1.getScore());
});
userList.stream().forEach(user -> {
System.out.println(user.getNickName());
});
System.out.println("================================");
userList.sort((u1,u2)->{
/** 按照分数升序排(分数相等不处理) */
return new Integer(u1.getScore()).compareTo(u2.getScore());
});
userList.stream().forEach(user -> {
System.out.println(user.getNickName());
});
System.out.println("================================");
userList.sort((u1,u2)->{
if(!u2.getScore().equals(u1.getScore())) {
/** 分数不相同按照分数降序排序 */
return new Integer(u2.getScore()).compareTo(u1.getScore());
} else {
/** 分数相同按照积分降序排序 */
return u2.getSize().compareTo(u1.getSize());
}
});
userList.stream().forEach(user -> {
System.out.println(user.getNickName());
});
}
结果:
李白1
李白2
李白3
李白4
李白5
====================================
李白5
李白2
李白1
李白4
李白3
====================================
李白3
李白1
李白4
李白2
李白5
====================================
李白5
李白2
李白4
李白1
李白3