import java.io.*; import java.util.*; class Comp implements Comparator <Integer> { public int compare (Integer arg1, Integer arg2) { int k1, k2, sw = 0; k1 = arg1.intValue(); k2 = arg2.intValue(); if (k1 < k2) sw = 1; else if (k1 == k2) sw = 0; else sw = -1; return sw; } } public class Test { public static void main (String[] args) { int i1, k; boolean sw; // コンパレータを使用しない場合(昇順) PriorityQueue <Integer> data1 = new PriorityQueue <Integer> (); for (i1 = 0; i1 < 5; i1++) data1.add(new Integer(i1)); for (i1 = 0; i1 < 5; i1++) { k = data1.poll().intValue(); System.out.printf("%d ", k); } System.out.println(); // コンパレータを使用する場合(降順) Comparator<Integer> cp = new Comp(); PriorityQueue <Integer> data2 = new PriorityQueue <Integer> (1, cp); for (i1 = 0; i1 < 5; i1++) data2.add(new Integer(i1)); for (i1 = 0; i1 < 5; i1++) { k = data2.poll().intValue(); System.out.printf("%d ", k); } System.out.println(); } }
0 1 2 3 4 4 3 2 1 0