编写一个Book类,该类至少有name和price两个属性。该类要实现Comarable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。
查询结果如下图:
新书:《模式识别》与下列图书:
* Java基础教程
* 数据库技术
* C++基础教程
* 价格相同,具体价格为:29.0元。
1.Book.java
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class Book implements Comparable<Book>{
String name;
double piece;
public Book(String name,double piece){
this.name=name;
this.piece=piece;
}
@Override
public int compareTo(Book o) {
if(piece>o.piece)
return 1;
else if(piece==o.piece)
return 0;
else
return -1;
}
public static void main(String[] args) {
Map<String,Double> bookMap=new LinkedHashMap<String,Double>();
bookMap.put("Java基础课程",29.0);
bookMap.put("Android开发",38.0);
bookMap.put("数据结构",30.0);
bookMap.put("数据库技术",29.0);
bookMap.put("计算机网络技术",32.0);
bookMap.put("C++基础教程",29.0);
Book newBook=new Book("模式识别",29.0);
System.out.println("新书:《模式识别》与下列图书:");
for(Entry<String, Double> b : bookMap.entrySet()){
Book comBook=new Book(b.getKey(),b.getValue());
if(newBook.compareTo(comBook)==0)
System.out.println(comBook.name);
}
System.out.println("价格相同,具体价格为:"+newBook.piece+"元。");
}
}
2.运行截图