看板 java 關於我們 聯絡資訊
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
tomap41017:我猜跟浮點數精確度有關? 09/06 17:48
dou0228:樓上正解! 09/06 21:07