Re: [問題] 請教一下Collections.sort的comparator..
※ 引述《lovebluetea (cchichi)》之銘言:
: 剛剛在處理arraylist的排序上碰到了一些問題…
: 想請教一下版上的前輩們...
: 我有咕狗過一下還是看不太懂。
你 google 過什麼?
http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html
跟
http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html
#compare(T, T)
的說明有哪裡看不懂?
: Collection.sort裡面有個變形是可以用comparrator去處理的,
Collection 哪有 sort() 這個 method?
是 Collections 才有這個 method
: 但是我看不懂.sort他是怎麼處理Comparator回傳的數字
可以不用看懂,反正 Collections.sort() 就是幫你排到好
你可以把他想成氣泡排序法或任何你懂得排序法
反正,他就是排列(Collection 長相的)陣列
: Collections.sort(queue, new Comparator<int[]>() {
: public int compare(int[] arg0, int[] arg1) {
: if (arg0 < arg1)
: return -1;
: else if (arg0 > arg1)
: return 1;
: return 0;
: }
: });
: 已上述例子來說... 1 , 0 , -1回傳回去是如何做排序?
「以」上述的例子,你的程式根本 compile 不過
(除非你寫的不是 Java,或是 Java 已經有 operator override)
再者,你自己寫一個測試資料去測試,不就知道了嗎?
還是你要問什麼更進一步的問題是我沒看出來的?
: return 1就是代表arg0的順序先於arg1嗎?
: 另外還有一個問題= =...他只要知道二個數字間如何比較就可以做完這個sort嗎..
未必是數字,這玩意美妙之處就在於,給他有 implement Comparable 的物件
或是另外寫個 Comparator 寫明這兩個物件要怎麼比大小就可以 sort
我是不知道有沒有其他排序演算法可以跳脫這個限制
但是,大多數課本上有的演算法,到最後不就是一堆兩兩比較的結果嗎?
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.5.5
※ 編輯: PsMonkey 來自: 114.25.5.5 (03/23 00:28)
推
03/23 12:07, , 1F
03/23 12:07, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):