close
行銷服務開發租售Facebook遊戲
高雄網頁製作
高雄網頁製作
PriorityQueue類別==>是一優先級佇列的元素按照其中的介面自然順序進行排序,或者根據建構佇列時提供的 Comparator 進行排序,具體取決於所使用的建構。此佇列的頭 是按指定排序方式確定的最小 元素。
所以說PriorityQueue類別 的是由小排到大
上方a.compareTo(b) * -1; 這段只是實作ㄌComparato 類別的compareTo()的方法~~只是將兩個相同元素乘上 -1 這樣 a(變成 -65) b (變成 -66)
所以問題一
a.compareTo(b) * -1; 變成負數就由大到小排列~~是錯誤的,他只是將兩個元素乘以 - 1 比較實作ㄌComparato 類別的compareTo()的方法,一樣其中變成負數時 a 仍比 b 大~~只是實作定義 變數 c 的方法
第二個問題
new PriorityQueue (3,c);
這裡建構子中的 3 是初始該類別的容器容量大小
而 c ==>根據 c 指定的比較器中定義作排序
因上方實作ㄌComparato 類別的方法中定義是負數
所以 PriorityQueue類別 仍會以由最小的元素自然排序到最大
所以 當 a.compareTo(b) * -1; 時 下方程式中的元素
a = -65 ,b = -66 , c = -67 ,
因此列印時
仍會從最小的到最大的印出如右 ==> c,b,a,
全站熱搜
留言列表