Java of Integersに優先キューがあります:
PriorityQueue<Integer> pq= new PriorityQueue<Integer>();
呼び出すpq.poll()
と、最小要素が取得されます。
質問:コードを変更して最大の要素を取得するにはどうすればよいですか?
このようにどうですか:
PriorityQueue<Integer> queue = new PriorityQueue<>(10, Collections.reverseOrder());
queue.offer(1);
queue.offer(2);
queue.offer(3);
//...
Integer val = null;
while( (val = queue.poll()) != null) {
System.out.println(val);
}
Collections.reverseOrder()
提供Comparator
中の要素の並べ替えであろうとPriorityQueue
、この場合、その自然な順序にopositeの順序で。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加