Comparator与Comparable实现List中某一对象属性排序
//实体类实现 Comparable接口 进行降序排序 public class TestCompare implements Comparable<TestCompare>{ private String name; private int 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 "TestCompare{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public int compareTo(TestCompare o) { //降序 1,-1返回位置交换升序
//实现comparator接口实现比较器对象 //逻辑与comparable一样 public class TestComparator implements Comparator<TestCompare> { public int compare(TestCompare o1, TestCompare o2) { if(o1.getAge()<o2.getAge()){ return 1; }else if(o1.getAge()==o2.getAge()){ return 0; }else { return -1; } } }
if (this.getAge()<o.getAge()){ return 1; }else if(this.getAge() == o.getAge()){ return 0; }else { return -1; } } }
public class Test_fori { public static void main(String[] args) { TestCompare t = new TestCompare(); TestCompare testCompare1 = new TestCompare(); TestCompare testCompare2 = new TestCompare(); TestCompare testCompare3 = new TestCompare(); testCompare1.setName("cui"); testCompare1.setAge(58); testCompare2.setName("hhh"); testCompare2.setAge(99); testCompare3.setName("hih"); testCompare3.setAge(12); ArrayList<TestCompare> list = new ArrayList<>(); list.add(testCompare1); list.add(testCompare2); list.add(testCompare3); for (TestCompare t1:list ) { System.err.println(t1); } //comparator方式 // Collections.sort(list,new TestComparator()); //comparable方式 Collections.sort(list); System.err.println("================"); for (TestCompare t1:list ) { System.err.println(t1); } }
根据age进行降序排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix