list集合两种排序方法

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);
		
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值