代码1
List<Integer> list = Arrays.asList(10,1,3,4,6,7); // 降序排列 Collections.sort(list, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2.compareTo(o1); } }); for (Integer item : list){ System.out.println(item); }
代码2:
class StudentTest implements Comparable<StudentTest> { private String name; private int age; public StudentTest() { } public StudentTest(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "name:" + this.name + ";age:" + this.age; } @Override public int compareTo(StudentTest o) { // 先按age排序 if (this.age > o.getAge()) { return (this.age - o.getAge()); } if (this.age < o.getAge()) { return (this.age - o.getAge()); } // 再按name排序 if (this.name.compareTo(o.getName()) > 0) { return 1; } if (this.name.compareTo(o.getName()) < 0) { return -1; } return 0; } }
使用:
StudentTest[] list = new StudentTest[4]; list[0] = new StudentTest("b1", 20); list[1] = new StudentTest("a2", 50); list[2] = new StudentTest("a1", 20); list[3] = new StudentTest("b2", 40); Arrays.sort(list); System.out.println(Arrays.toString(list));
输出:
[name:a1;age:20, name:b1;age:20, name:b2;age:40, name:a2;age:50]
说明:返回值大于0:靠前;等于0:不变;小于零:靠后。
Comparator方式:
Arrays.sort(list,new Comparator<StudentTest>() { @Override public int compare(StudentTest o1, StudentTest o2) { // 先按age倒序排序 if (o1.getAge() > o2.getAge()) { return -1; } if (o1.getAge() < o2.getAge()) { return 1; } // 再按name倒序 if (o1.getName().compareTo(o2.getName()) > 0) { return -1; } if (o1.getName().compareTo(o2.getName()) < 0) { return 1; } return 0; } }); System.out.println(Arrays.toString(list));
输出:[name:a2;age:50, name:b2;age:40, name:b1;age:20, name:a1;age:20]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】