[問題] Comparator 比對整數的時候沒考慮位數

看板java作者 (帥到吐)時間6年前 (2018/01/31 09:03), 6年前編輯推噓1(104)
留言5則, 2人參與, 6年前最新討論串1/1
我要用 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://www.ptt.cc/bbs/java/M.1517360608.A.C00.html ※ 編輯: douglasjs (199.107.209.18), 01/31/2018 09:03:48

01/31 09:28, 6年前 , 1F
你在比的是Key,又不是int
01/31 09:28, 1F

01/31 09:28, 6年前 , 2F
Comparator沒有只能處理字串,Comparator只是個介面,什麼
01/31 09:28, 2F

01/31 09:28, 6年前 , 3F
都不能處理,怎麼處理是看實作...
01/31 09:28, 3F

01/31 09:33, 6年前 , 4F
比int可以直接用Integer.compare
01/31 09:33, 4F

02/01 01:25, 6年前 , 5F
比法 不是你自己寫的嗎 先比位數不就好了
02/01 01:25, 5F
文章代碼(AID): #1QSHNWm0 (java)