作者douglasjs (帥到吐)
看板java
標題[問題] Comparator 比對整數的時候沒考慮位數
時間Wed Jan 31 09:03:26 2018
我要用 comparator 功能來做整數的比對
但是發現它似乎只能處理字串,但是整數比對沒考慮位數
舉例: 18 13 11 10 10
加入 100 來排序此時會變成
18 13 11 100 10 10
100後面的0沒有被考慮進去
有沒有解決方法呢?
private Key[] pq; // store items at indices 1 to n
private int n; // number of items on priority queue
private Comparator<Key> comparator; // optional comparator
private boolean less(int i, int j) {
if (comparator == null) {
return ((Comparable<Key>) pq[i]).compareTo(pq[j]) < 0;
}
else {
return comparator.compare(pq[i], pq[j]) < 0;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 199.107.209.18
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1517360608.A.C00.html
※ 編輯: douglasjs (199.107.209.18), 01/31/2018 09:03:48
1F:→ ssccg: 你在比的是Key,又不是int 01/31 09:28
2F:→ ssccg: Comparator沒有只能處理字串,Comparator只是個介面,什麼 01/31 09:28
3F:→ ssccg: 都不能處理,怎麼處理是看實作... 01/31 09:28
4F:→ ssccg: 比int可以直接用Integer.compare 01/31 09:33
5F:推 Jichang: 比法 不是你自己寫的嗎 先比位數不就好了 02/01 01:25