花时间精力去凿许多浅井还不如花相当多的时间和精力去凿一口深井。 ——罗曼·罗兰
在Java的编程中,如果要问,出现频率最高的Collection工具类是什么?毫无疑问,答案是List。本文分享几种在Java中,按照对象的属性,对List里面的元素进行排序的常见方法。
1. 使用Comparator进行排序
/**
* 使用Comparator进行排序
* @param userList 用户结合
*/
public void sortByComparator(List<UserBean> userList) {
System.out.println("排序前:");
for (UserBean user : userList) {
System.out.println(user.toString());
}
// 排序工具类
Collections.sort(userList, new Comparator<UserBean>() {
@Override
public int compare(UserBean o1, UserBean o2) {
return o1.getAge() - o2.getAge();
}
});
System.out.println("排序后:");
for (UserBean user : userList) {
System.out.println(user.toString());
}
}
2. 使用Stream进行排序
/**
* 使用Stream进行排序
* @param userList 用户集合
*/
public void sortByStream(List<UserBean> userList) {
System.out.println("排序前:");
for (UserBean user : userList) {
System.out.println(user.toString());
}
// 排序过程
userList = userList.stream().sorted(Comparator.comparing(UserBean::getAge).reversed()).collect(Collectors.toList());
System.out.println("排序后:");
for (UserBean user : userList) {
System.out.println(user.toString());
}
}
3. 使用Comparable进行排序
/**
* 使用Comparable进行排序
* @param userList 实现了Comparable接口的用户集合
*/
public void sortByComparable(List<User> userList) {
System.out.println("排序前:");
for (User user : userList) {
System.out.println(user.toString());
}
// 执行排序
Collections.sort(userList);
System.out.println("排序后:");
for (User user : userList) {
System.out.println(user.toString());
}
}
视频笔记
本篇笔记也在小破站通过视频形式分享,欢迎访问: 小破站视频笔记。