java的list集合如何根据对象中的某个字段排序?
转自:http://blog.csdn.net/wangjuan_01/article/details/51351633
List集合按某个字段排序
- package wjtest_01;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class ListSort<E> {
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- List<Student> list = new ArrayList<Student>();
- // 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
- Student s1 = new Student();
- s1.setAge(20);
- s1.setUsable(true);
- Student s2 = new Student();
- s2.setAge(19);
- s2.setUsable(true);
- Student s3 = new Student();
- s3.setAge(21);
- s3.setUsable(false);
- list.add(s1);
- list.add(s2);
- list.add(s3);
- System.out.println("排序前:" + list);
- Collections.sort(list, new Comparator<Student>() {
- @Override
- public int compare(Student o1, Student o2) {
- // 按照学生的年龄进行升序排列
- if (o1.getAge() > o2.getAge()) {
- return 1;
- }
- if (o1.getAge() == o2.getAge()) {
- return 0;
- }
- return -1;
- }
- });
- System.out.println("升序排序后:" + list);
- Collections.sort(list, new Comparator<Student>() {
- public int compare(Student o1, Student o2) {
- // 按照学生的年龄进行降序排列
- if (o1.getAge() > o2.getAge()) {
- return -1;
- }
- if (o1.getAge() == o2.getAge()) {
- return 0;
- }
- return 1;
- }
- });
- System.out.println("降序排序后:" + list);
- Boolean b1 = true; // 创建Boolean对象1
- Boolean b2 = false; // 创建Boolean对象0
- Boolean b3 = true; // 创建Boolean对象1
- System.out.println(b1);
- int i;
- i = b1.compareTo(b2); // b1和b2进行比较
- System.out.println(i);//1-0
- i = b2.compareTo(b1); // b2和b1进行比较
- System.out.println(i);//0-1
- i = b1.compareTo(b3); // b1和b3进行比较
- System.out.println(i);//1-1
- }
- }
- class Student{
- private int age;
- private Boolean isUsable;
- public int getAge() {
- return age;
- }
- public Boolean isUsable() {
- return isUsable;
- }
- public void setUsable(Boolean isUsable) {
- this.isUsable = isUsable;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return getAge()+"";
- }
- }
不积跬步无以至千里,不积小流无以成江海
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决