定义一个Book类并能根据价格进行比较。创建一个泛型集合存放图书,对图书进行排序并输出
时间: 2024-03-09 16:50:49 浏览: 240
好的,下面是代码实现:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Book implements Comparable<Book> {
private String name; // 书名
private double price; // 价格
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
@Override
public int compareTo(Book o) {
// 按照价格进行升序排序
if (this.price > o.price) {
return 1;
} else if (this.price < o.price) {
return -1;
} else {
return 0;
}
}
}
class PriceComparator implements Comparator<Book> {
@Override
public int compare(Book o1, Book o2) {
// 按照价格进行升序排序
if (o1.getPrice() > o2.getPrice()) {
return 1;
} else if (o1.getPrice() < o2.getPrice()) {
return -1;
} else {
return 0;
}
}
}
public class Main {
public static void main(String[] args) {
// 创建一个泛型集合,用于存储书籍
List<Book> list = new ArrayList<>();
list.add(new Book("Java从入门到精通", 50.0));
list.add(new Book("Python编程基础", 30.0));
list.add(new Book("C++高级编程", 70.0));
list.add(new Book("Spring框架开发实战", 60.0));
list.add(new Book("算法导论", 90.0));
// 对集合进行排序,这里使用了两种方式
Collections.sort(list); // 使用实现Comparable接口的方式进行排序
Collections.sort(list, new PriceComparator()); // 使用Comparator接口的方式进行排序
// 输出排序后的结果
System.out.println("排序后的结果为:");
for (Book book : list) {
System.out.println(book);
}
}
}
```
运行结果:
```
排序后的结果为:
Book{name='Python编程基础', price=30.0}
Book{name='Java从入门到精通', price=50.0}
Book{name='Spring框架开发实战', price=60.0}
Book{name='C++高级编程', price=70.0}
Book{name='算法导论', price=90.0}
```
阅读全文