Re: [問題] 將 static method 當做函數的參數傳入?已刪文
※ 引述《Killercat (殺人貓™)》之銘言:
: quickSort(list, 0, list.size() - 1, new Comperator<T>() {
: int ascending(T t1, T t2) {
: return QuickSortTest<T>.ascending(t1, t2);
: }
: });
: java沒辦法傳一個method(也不能說沒辦法 不過要用reflect把它invoke)
: 基本上只能傳object,所以用一個匿名的class把它包起來就好了.
: 另外.... "::"? 你C++寫太多了(敲頭)
其實我 C++ 不熟哩 我也是 copy 程式碼來的 呵呵
不過不知為何 大大的方式我試過還是不能使用
我後來試了另一種方式 就是自己實做 Comparator
然後丟到 sort 函式裡面 這樣就可以跑了
public static <T extends Comparable<? super T>>
void ascending_sort(List<T> list) {
Comparator<T> comp = new Comparator<T>(){
public int compare(T t1, T t2) {
if (t1.compareTo(t2) > 0) {
return 1;
}
else if (t1.compareTo(t2) < 0) {
return -1;
}
else {
return 0;
}
}
};
sort(list, comp);
}
不過如果是在 main 函式的話 就不能用這個方法
所以只好用一個 ascending_sort 函式包裝起來
如果希望 list 呈降冪排列 只要改 Comparator 的正負號即可
以上就是一點小心得 謝謝各位大大的指教
--
小瑋的倉庫
http://cwchen123.blogspot.tw
生活、攝影、電腦,大雜燴
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.85.200
→
08/24 12:50, , 1F
08/24 12:50, 1F
討論串 (同標題文章)