- 1 import java.util.ArrayList;
- 2 import java.util.Collections;
- 3 import java.util.Comparator;
- 4 import java.util.List;
- 5
- 6 public class TestCompare {
- 7
- 8 public static void main(String[] args) {
- 9
- 10List list = newArrayList();
- 11list.add(newBookInfo(1, "aa", "hskahs", 10));
- 12list.add(newBookInfo(14, "sw", "zxs", 40));
- 13list.add(newBookInfo(31, "as", "zx", 10));
- 14list.add(newBookInfo(24, "ds", "cds", 20));
- 15list.add(newBookInfo(5, "rfr", "cvb", 17));
- 16list.add(newBookInfo(20, "saa", "cdg", 100));
- 17list.add(newBookInfo(19, "cd", "def", 80));
- 18
- 19System.out.println("----------ID排序----------");
- 20Collections.sort(list,new BookInfoIDCompare());
- 21 for (BookInfo bookInfo : list) {
- 22 System.out.println(bookInfo);
- 23 }
- 24
- 25System.out.println("----------名称排序----------");
- 26
- 27
- 28Collections.sort(list,new BookInfoNameCompare());
- 29 for (BookInfo bookInfo : list) {
- 30 System.out.println(bookInfo);
- 31 }
- 32
- 33System.out.println("----------作者排序----------");
- 34
- 35
- 36Collections.sort(list,new BookInfoAuthorCompare());
- 37 for (BookInfo bookInfo : list) {
- 38 System.out.println(bookInfo);
- 39 }
- 40
- 41
- 42System.out.println("-------价格降序排序-------------");
- 43
- 44
- 45Collections.sort(list,new BookInfoPriceCompare());
- 46 for (BookInfo bookInfo : list) {
- 47 System.out.println(bookInfo);
- 48 }
- 49 }
- 50 }
- 51
- 52 classBookInfoIDCompareimplementsComparator {
- 53
- 54 @Override
- 55 public int compare(BookInfo o1, BookInfo o2) {
- 56
- 57 returno1.getId() > o2.getId() ? 1 : (o1.getId() < o2.getId() ? -1 : 0);
- 58 }
- 59
- 60 }
- 61
- 62 classBookInfoNameCompareimplementsComparator {
- 63
- 64 @Override
- 65 public int compare(BookInfo o1, BookInfo o2) {
- 66
- 67 return o1.getName().compareTo(o2.getName());
- 68 }
- 69 }
- 70
- 71 classBookInfoAuthorCompareimplementsComparator {
- 72
- 73 @Override
- 74 public int compare(BookInfo o1, BookInfo o2) {
- 75
- 76 return o1.getAuthor().compareTo(o2.getAuthor());
- 77 }
- 78 }
- 79
- 80 classBookInfoPriceCompareimplementsComparator {
- 81
- 82 @Override
- 83 public int compare(BookInfo o1, BookInfo o2) {
- 84 returno1.getPrice() > o2.getPrice() ? -1 : (o1.getPrice() < o2.getPrice() ? 1 : 0);
- 85 }
- 86 }
- 87
- 88 class BookInfo {
- 89 private int id;
- 90 private String name;
- 91 private String author;
- 92 private int price;
- 93
- 94 publicBookInfo(intid, String name, String author,int price) {
- 95 super();
- 96 this.id = id;
- 97 this.name = name;
- 98 this.author = author;
- 99 this.price = price;
- 100 }
- 101
- 102 public BookInfo() {
- 103 super();
- 104 }
- 105
- 106 public int getId() {
- 107 return id;
- 108 }
- 109
- 110 public voidsetId(int id) {
- 111 this.id = id;
- 112 }
- 113
- 114 public String getName() {
- 115 return name;
- 116 }
- 117
- 118 public void setName(String name) {
- 119 this.name = name;
- 120 }
- 121
- 122 public String getAuthor() {
- 123 return author;
- 124 }
- 125
- 126 public void setAuthor(String author) {
- 127 this.author = author;
- 128 }
- 129
- 130 public int getPrice() {
- 131 return price;
- 132 }
- 133
- 134 public voidsetPrice(int price) {
- 135 this.price = price;
- 136 }
- 137
- 138 @Override
- 139 public String toString() {
- 140 return"BookInfo [id=" + id + ", name=" + name + ", author=" + author + ", price=" + price + "]";
- 141 }
- 142
- 143}
来源: http://www.bubuko.com/infodetail-2134180.html