TreeSet中自定义排序的两种方法

* 以此为例子*
人类,属性姓名,收入,年龄,书,
书类:属性书名,价格
存储TreeSet集合,排序规则:
A:先按照收入排序:从高到低
B:收入相等的情况下,按照年龄排序:从小到大
C:如果收入和年龄都相等,按照姓名排序,字典顺序(String类的compareTo方法)
D:如果以上3个属性都相等,按照书排序,先按照书价格:从低到高,如果书价格相等,按照书名(字典顺序)

方法1
//这里我是用的在题目的类中直接继承Comparable 重写了Comparable,TreeSet使用时直接比较了

public class Demo01 {
    public static void main(String[] args) {
        Book book=new Book("java", 20);
        Book book2=new Book("Android", 22);
        Person person=new Person("lcs", 2000, 20, book);
        Person person2=new Person("lcs", 2000, 20, book2);
        Set<Person> set=new TreeSet<>();
        set.add(person);
        set.add(person2);
        System.out.println(set);
    }
}
class Book implements Comparable<Book>{
    private String bookname;
    private int price;
    public Book(String bookname, int price) {
        super();
        this.bookname = bookname;
        this.price = price;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "Book [bookname=" + bookname + ", price=" + 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值