* 以此为例子*
人类,属性姓名,收入,年龄,书,
书类:属性书名,价格
存储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=" +