课题要求:
编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。查询结果如下图:
代码:
package fanxing;
import java.util.*;
public class Book implements Comparable<Book>{
String name;
int price;
public Book(String name,int price){ //泛型类的构造方法
this.name=name;
this.price=price;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getPrice(){
return price;
}
public void setPrice(int price){
this.price=price;
}
@Override
public int compareTo(Book o) {
// TODO 自动生成的方法存根
if(this.price-o.price!=0){
return 1;
}
if(this.price-o.price==0){
return 0;
}
return -1;
}
}
package fanxing;
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList<Book> list=new ArrayList<>();
list.add(new Book("java基础教程",25));
list.add(new Book("数据库技术",23));
list.add(new Book("C++基础教程",15));
Book book=new Book("模式识别",23);
System.out.println("新书:《模式识别》与下列图书:");
for(Book o:list){
if(o.compareTo(book)==0){
System.out.println(o.getName());
System.out.println("价格相同,具体价格为:"+o.getPrice());
}
}
}
}
结果: