Java List 排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | package ersatz; import java.util.Comparator; import java.util.LinkedList; import java.util.List; public class Ersatz { public static void main(String[] args) { List list = new LinkedList(); list.add( new Book( "a" , "aa" , 100)); list.add( new Book( "b" , "bb" , 10)); list.add( new Book( "c" , "cc" , 19)); list.add( new Book( "d" , "dd" , 80)); sort(list, new Comparator() { @Override public int compare(Object o1, Object o2) { Book b1 = (Book) o1; Book b2 = (Book) o2; if (b1.getPrice() > b2.getPrice()) { return 1; } else if (b1.getPrice() < b2.getPrice()) { return -1; } else { return 0; } } }); for (Object value : list) { System. out .println(value); } sort(list, new Comparator() { @Override public int compare(Object b, Object p) { Book b1 = (Book) b; Book b2 = (Book) p; if (b1.getPrice() > b2.getPrice()) { return -1; } else if (b1.getPrice() < b2.getPrice()) { return 1; } else { return 0; } } }); for (Object value : list) { System. out .println(value); } } public static void sort(List list, Comparator comparator) { int size = list.size(); for ( int i = 0; i < size - 1; ++i) { for ( int j = 0; j < size - 1 - i; ++j) { Book b1 = (Book) list. get (j); Book b2 = (Book) list. get (j + 1); if (comparator.compare(b1, b2) > 0) { list. set (j, b2); list. set (j + 1, b1); } } } } } class Book { private String name; private String author; private double price; @Override public String toString() { return "名称:" + name + "\t\t价格:" + price + "\t\t作者:" + author; } public String getName() { return name; } public void setName(String name) { this .name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this .author = author; } public double getPrice() { return price; } public void setPrice( double price) { this .price = price; } public Book(String name, String author, double price) { this .name = name; this .author = author; this .price = price; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-07-16 if else实现排序