標籤

二元樹 (1) 字串常數池 (1) 投資 (3) 每月損益 (37) 例外處理 (1) 泛型 (2) 股票 (15) 指標 (5) 英文 (8) 基本資料型別 (1) 期貨 (1) 程式交易 (10) 量化投資 (5) 亂亂寫 (3) 概念 (3) 資料結構 (3) 演算法 (3) 數學 (3) 轉型 (1) AMA (1) ArrayList (1) assert (1) BeautifulSoup (1) C/C++ (8) casting (1) ClassCastException (1) classpath (1) Collection (4) Comparable (1) comparTo() (1) constructor (1) database (3) Debian (1) Dropbox (2) EA (2) enum (1) equals() (2) exception (3) extends (1) ffmpeg (1) final (1) Git (1) HashMap (1) HashSet (1) hasNext() (1) HTS (3) instanceof (1) IS-A (1) Iterator (1) JAVA (43) length (1) Linux (31) List (1) Mac (6) Map (1) ML (2) MT4 (6) MySQL (2) next() (1) NullPointerException (1) Number (1) Numpy (2) OpenCart (1) OpenCV (3) OSX (1) overloading (1) overriding (3) pandas (2) PHP (8) PriorityQueue (1) Python (11) Queue (1) random() (1) reverse() (1) Samba (1) SCJP (21) sqrt() (1) synchronized (1) talib (1) ufw (1) uTorrent (1) var-args (2) VHF (1) vim (2) Yhoo知識+ (4)

2012年10月28日 星期日

comparTo()

comparTo()為Comparable介面的函式,要實現排序須實作comparTo()函式。
當呼叫Collection.sort()時,系統會依comparTo()的回傳值由小到大做排序。

a, b為物件。
int x = a.comparTo(b);    //由小到大
if a < b, then x < 0
if a = b, then x = 0
if a > b, then x > 0
如果a < b,則x < 0,a.comparTo(b)排序為a b


int x = b.comparTo(a);
if b < a, then x < 0
if b = a, then x = 0
if b > a, then x > 0
如果a < b,則x > 0,b.comparTo(a) 排序為b a

結論:
a.comparTo(b)與b.comparTo(a)的排序結果相反。
記的方法為,a.comparTo(b)就是a - b,若a小減的結果為負,a就放前面;
b.comparTo(a)就是b - a,若a小減的結果為正,a放後面;
兩者剛好相反。



沒有留言:

張貼留言