20260108_優先度付きキューについて
Java(に関わらず一般的なプログラミング言語には)「優先度付きキュー」という概念がある。 通常のキューではFIFO(先入先出)だが、優先度付きキューでは定義された優先度順に要素を取り出すことができる。Javaにおいては 優先度付きキューの実装としてPriorityQueueクラスが用意されている。
java
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(20);
pq.add(5);
pq.add(10);
// PriorityQueueはデフォルトでは最小優先度付きキュー(数値の場合は数が小さいほど優先度が高い)となる。
// 詳細は割愛するが、最大優先度付きキューを実現したいなら、Comparatorを使用すれば良い。
System.out.println(pq.poll()); //最も優先度が高い5が出力され、5はpdから削除される。