2011-08-28 2 views
0

우선 순위가 높은 요소가있는 PriorityQueue이 있습니다. 이제 다른 우선 순위로 동일한 요소를 다시 추가하고 우선 순위가 높은 요소 만 유지하려고합니다. 나는 이미 존재하는 원소에 대해 새로운 원소를 검사하고 이전 원소를 유지할 것인지를 결정할 생각을했지만, 새로운 원소를 PriorityQueue의 임의의 원소와 비교하는 방법을 찾을 수 없다.Java PriorityQueue의 임의의 요소를 비교하는 방법은 무엇입니까?

답변

2

a PriorityQueue은 임의의 요소에 액세스하지 않으려 고 머리에 빠르게 액세스 할 수 있도록 설계되었습니다. 이 작업을 자주 수행해야하는 경우 아마도 java.util.TreeSet이 더 나은 데이터 구조가됩니다.

그러나 PriorityQueue [Iterator]을 반복하고 일치하는 항목을 찾을 때 모든 요소에 액세스 할 수 있습니다. PriorityQueue에 대한 임의의 요소를 얻기위한 성능을 얻으려면 O(n)을 사용할 수 없습니다.

관련 문제