Java by API/java.util/PriorityQueue
Версия от 20:43, 31 мая 2010; (обсуждение)
new PriorityQueue(int initialCapacity)
<source lang="java">
import java.util.ruparator;
import java.util.PriorityQueue;
enum ProductQuality {
High, Medium, Low
} class Product implements Comparable<Product> {
String name; ProductQuality priority; Product(String str, ProductQuality pri) { name = str; priority = pri; } public int compareTo(Product msg2) { return priority.rupareTo(msg2.priority); }
} class MessageComparator implements Comparator<Product> {
public int compare(Product msg1, Product msg2) { return msg2.priority.rupareTo(msg1.priority); }
} public class Main {
public static void main(String args[]) { PriorityQueue<Product> pq = new PriorityQueue<Product>(3); pq.add(new Product("A", ProductQuality.Low)); pq.add(new Product("B", ProductQuality.High)); pq.add(new Product("C", ProductQuality.Medium)); Product m; while ((m = pq.poll()) != null) System.out.println(m.name + " Priority: " + m.priority); PriorityQueue<Product> pqRev = new PriorityQueue<Product>(3, new MessageComparator()); pqRev.add(new Product("D", ProductQuality.Low)); pqRev.add(new Product("E", ProductQuality.High)); pqRev.add(new Product("F", ProductQuality.Medium)); while ((m = pqRev.poll()) != null) System.out.println(m.name + " Priority: " + m.priority); }
}
</source>
PriorityQueue: poll()
<source lang="java">
import java.util.ruparator; import java.util.PriorityQueue; enum ProductQuality {
High, Medium, Low
} class Product implements Comparable<Product> {
String name; ProductQuality priority; Product(String str, ProductQuality pri) { name = str; priority = pri; } public int compareTo(Product msg2) { return priority.rupareTo(msg2.priority); }
} class MessageComparator implements Comparator<Product> {
public int compare(Product msg1, Product msg2) { return msg2.priority.rupareTo(msg1.priority); }
} public class Main {
public static void main(String args[]) { PriorityQueue<Product> pq = new PriorityQueue<Product>(3); pq.add(new Product("A", ProductQuality.Low)); pq.add(new Product("B", ProductQuality.High)); pq.add(new Product("C", ProductQuality.Medium)); Product m; while ((m = pq.poll()) != null) System.out.println(m.name + " Priority: " + m.priority); PriorityQueue<Product> pqRev = new PriorityQueue<Product>(3, new MessageComparator()); pqRev.add(new Product("D", ProductQuality.Low)); pqRev.add(new Product("E", ProductQuality.High)); pqRev.add(new Product("F", ProductQuality.Medium)); while ((m = pqRev.poll()) != null) System.out.println(m.name + " Priority: " + m.priority); }
}
</source>