定义一个Book类并能根据价格进行比较,创建一个泛型集合存放图书,对图书进行价格排序并输出
时间: 2024-03-25 13:39:39 浏览: 22
好的,我可以帮你解决这个问题。
首先,我们可以定义一个 `Book` 类,包含书名、作者、价格等属性,并实现 `Comparable` 接口,以便能够根据价格进行比较。
```java
public class Book implements Comparable<Book> {
private String title;
private String author;
private double price;
public Book(String title, String author, double price) {
this.title = title;
this.author = author;
this.price = price;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPrice() {
return price;
}
@Override
public int compareTo(Book other) {
return Double.compare(this.price, other.price);
}
}
```
接着,我们可以创建一个泛型集合,存放 `Book` 对象,并对它们进行排序。
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Book> books = new ArrayList<>();
books.add(new Book("Java 编程思想", "Bruce Eckel", 79.9));
books.add(new Book("深入浅出设计模式", "程杰", 59.0));
books.add(new Book("Effective Java", "Joshua Bloch", 98.0));
books.add(new Book("算法导论", "Thomas H. Cormen", 128.0));
Collections.sort(books);
for (Book book : books) {
System.out.println(book.getTitle() + " - " + book.getAuthor() + " - " + book.getPrice());
}
}
}
```
在上面的代码中,我们首先创建了一个 `List<Book>` 对象,包含了几本书的信息。然后,我们使用 `Collections.sort()` 方法对这个集合进行排序,排序的依据是 `Book` 类中实现的 `compareTo()` 方法。最后,我们遍历排序后的集合,输出每本书的信息。
输出结果如下:
```
深入浅出设计模式 - 程杰 - 59.0
Java 编程思想 - Bruce Eckel - 79.9
Effective Java - Joshua Bloch - 98.0
算法导论 - Thomas H. Cormen - 128.0
```
可以看到,输出的结果是按照价格递增排序的。
阅读全文