1、实现Comparable接口
(1、)实体类
public class Book implements Comparable<Book> {
private int id;
private String name;
private String author;
public Book() {
super();
}
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", author=" + author + "]";
}
public Book(int id, String name, String author) {
super();
this.id = id;
this.name = name;
this.author = author;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public int compareTo(Book o) {
return this.id - o.id;
}
}
(2、)测试类
public class Test {
public static void main(String[] args) {
List<Book> list = new ArrayList<Book>();
list.add(new Book(2,"西游记","吴承恩"));
list.add(new Book(5,"史记","司马炎"));
list.add(new Book(4,"水浒传","施耐庵"));
list.add(new Book(3,"三国演义","罗贯中"));
list.add(new Book(1,"红楼梦","曹雪芹"));
//Collections.sort(list);
Collections.sort(list, new Comparator<Book>(){
@Override
public int compare(Book o1, Book o2) {
return o1.getId() - o2.getId();
}
});
System.out.println(list);
}
}
2、实现Comparator接口
(1、)实体类
public class Book2{
private int id;
private String name;
private String author;
public Book2() {
super();
}
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", author=" + author + "]";
}
public Book2(int id, String name, String author) {
super();
this.id = id;
this.name = name;
this.author = author;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
(2、)比较器
public class BookCompare implements Comparator<Book2> {
@Override
public int compare(Book2 o1, Book2 o2) {
return o1.getId() - o2.getId();
}
}
(3、)测试类
public class Test2 {
public static void main(String[] args) {
List<Book2> list2 = new ArrayList<Book2>();
list2.add(new Book2(2, "西游记", "吴承恩"));
list2.add(new Book2(5, "史记", "司马炎"));
list2.add(new Book2(4, "水浒传", "施耐庵"));
list2.add(new Book2(3, "三国演义", "罗贯中"));
list2.add(new Book2(1, "红楼梦", "曹雪芹"));
Collections.sort(list2,new BookCompare());
System.out.println(list2);
}
}