少なくとも二つのプロパティ名と価格を持つBookクラスを書きます。Comparableインタフェースを実装するクラス、
ブック1は、少なくとも二つのプロパティ名と価格を持つクラスを記述します。そのようなインターフェイスを実装するに匹敵する二ブック所定の大きさの関係は、のcompareToインタフェースの大きさ()メソッドとの間の価格関係の両方のクラスのインスタンス属性です。主な機能には、クラスの適切なセットタイプブックストア複数のオブジェクトを選択し、[新しいオブジェクトクラスブックを作成し、その中でオブジェクトがセットと等しいかどうかをチェックします。クエリの結果は以下の通りであります:
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<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