编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,

来源:互联网 发布:京东关键词排名优化 编辑:程序博客网 时间:2024/05/16 15:18

 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,

1 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。查询结果如下图:

import java.util.Comparator;public class Book   implements Comparator{private String name;private int price;public Book(String name, int price) {super();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;}public Book() {super();// TODO Auto-generated constructor stub}/*  public int compareTo(Book one, Book another) {          int i = 0;          i = one.name.compareTo(another.name); // 使用字符串的比较          if(i == 0) { // 如果名字一样,比较年龄,返回比较jiage结果               return one.price - another.price;          } else {               return i; // 名字不一样, 返回比较名字的结果.          }     }*/@Overridepublic int compare(Object o1, Object o2) {// TODO Auto-generated method stub return ((Book)o1).price - ((Book)o2).price; }}
import java.util.ArrayList;public class Demo {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubArrayList<Book>  list=new ArrayList<Book>(); list.add(new Book("java",25)); list.add(new Book("C++",25)); Book  book=new Book();   int  t= book.compare(list.get(0), list.get(1));   if(t==0){   System.out.println("相等的。具体价格"+((Book)list.get(0)).getPrice());   }else   System.out.println("价格不相等"); }}

运行结果

相等的。具体价格25

阅读全文
0 0