[問題] 有關comparable 中判斷式的問題?
import java.util.*;
class Book implements Comparable<Book>{
String name;
Double price;
public Book(String s, double p){
this.name=s;
this.price=p;
}
public int compareTo(Book obj){
-> if((this.price) == (obj.price) ){
-> // if((this.price - obj.price) == 0){
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
上下兩行的比較? 有不同嗎? 為何上行印出的資料少一筆呢?
return this.name.compareTo(obj.name);
}
return this.price.compareTo(obj.price);
}
public void show(){
System.out.println(name);
System.out.println(price);
}
}
class TreeSetEx{
public static void main(String[] args){
TreeSet<Book> tset = new TreeSet<Book>();
Book book2 = new Book("SCJP認証手冊",600.0);
Book book3 = new Book("VB2008程式設計",600.0);
Book book1 = new Book("Java程式手冊",580.0);
tset.add(book1);
tset.add(book2);
tset.add(book3);
System.out.println("書籍資訊如下:");
System.out.println("---------------------------");
for(Book b : tset){
b.show();
System.out.println("---------------------------");
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.151.172
→
09/06 17:48, , 1F
09/06 17:48, 1F
→
09/06 21:07, , 2F
09/06 21:07, 2F