백준에서 PriorityQueue
를 활용하다가 알게 된 정보.
Java의 PriorityQueue
class에 대해 for each
문을 사용하면서 iterate를 할 때는 순서가 보장되지 않는다. Documentation에도 해당 언급이 있다.
순서가 보존된 iteration을 원한다면
원본 PriorityQueue
를 다시 유지할 필요가 없다면 poll
을 사용하면서 iterate하면 된다.
원본 PriorityQueue
유지가 필요하면 Arrays.sort(pq.toArray())
로 새로운 Array
객체를 만들어서 그걸 가지고 iterate하면 된다. Documentation에서 추천하는 방법이다.