实现其compareTo方法(比较规则:先按照价格进行比较,从高到低进行排序,如果价格一样,再按书名进行比较Java代码
时间: 2024-01-03 08:05:15 浏览: 26
假设有一个书籍类 Book,包含属性 price 和 name,可以使用以下代码实现其 compareTo 方法:
```
public class Book implements Comparable<Book> {
private double price;
private String name;
public Book(double price, String name) {
this.price = price;
this.name = name;
}
public double getPrice() {
return price;
}
public String getName() {
return name;
}
@Override
public int compareTo(Book other) {
if (this.price > other.price) {
return -1; // 价格高的排在前面
} else if (this.price < other.price) {
return 1;
} else {
return this.name.compareTo(other.name); // 价格相同,按书名排序
}
}
}
```
在比较时,可以使用 Collections.sort 方法对 Book 对象列表进行排序:
```
List<Book> books = new ArrayList<>();
books.add(new Book(50.0, "Java编程思想"));
books.add(new Book(40.0, "Effective Java"));
books.add(new Book(50.0, "Java核心技术"));
Collections.sort(books);
```
这样,books 列表会先按照价格从高到低排序,如果价格一样,再按照书名排序。