- - PR -
 
プライオリティキュー
1
| 投稿者 | 投稿内容 | 
|---|---|
  | 
 投稿日時: 2006-09-03 21:13 
class MyCmp implements Comparator {
public int compare(String s1, String s2) { return s2.compareToIgnoreCase(s1); } } public class JbPrioq2 { public static void main(String[] args) { PriorityQueue pq = new PriorityQueue(10, new MyCmp()); pq.offer("bbbb"); pq.offer("DDDD"); pq.offer("AAAA"); pq.offer("cccc"); while (pq.size() > 0) { System.out.println(pq.poll()); } } } コンパレータで順序づけするのはわかりますが、これでなんで逆辞書順になるのでしょうか?  | 
  | 
 投稿日時: 2006-09-03 21:21 
MyCmpのcompareで順序を自然順序から反転させているからです。
 | 
  | 
 投稿日時: 2006-09-03 21:58 
う〜ん?もう一つよくわかりません???
 | 
  | 
 投稿日時: 2006-09-03 22:45 
わかりました。
MYCmpで s1がAAAAA,s2がBBBB 本来なら s1が前なのだけれど、s2.compareToIgnoreCase(s1);で逆の値を返すから、 逆さに並ぶって事ですね。 この解釈でいいのかな?  | 
1
