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

 编写一个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; // 名字不一样, 返回比较名字的结果.
          }
     }*/
	@Override
	public 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 stub
		ArrayList  list=new ArrayList();
		 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

你可能感兴趣的:(Java基础和项目工程)