编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。
book.java
package setfrome;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Book implements Comparable{
public String name;
public double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
List<Book> booklist = new ArrayList<Book>();
Book b1 = new Book("java基础教程", 30.0);
Book b2 = new Book("C++基础教程", 28.0);
Book b3 = new Book("数据库技术1", 29.0);
Book b4 = new Book("数据库技术2", 29.0);
Book b5 = new Book("数据库技术3", 29.0);
booklist.add(b1);
booklist.add(b2);
booklist.add(b3);
booklist.add(b4);
booklist.add(b5);
Book b6 = new Book("模式识别", 29.0);
System.out.println("新书《" + b6.name + "》与下列图书:");
for (int i = 0; i < booklist.size(); i++) {
Book book = (Book) booklist.get(i);
int index = book.compareTo(b4);
if (index == 0) {
System.out.print("《"+book.name);
System.out.println("》");
}
}
System.out.print("相同" + "具体价格为" + b4.price + "元");
}
public int compareTo(Object obj) {
Book p = (Book) obj;
return (int) (p.price-this.price);
}
}
运行结果:
新书《模式识别》与下列图书:
《数据库技术1》
《数据库技术2》
《数据库技术3》
相同具体价格为29.0元