Java PriorityQueue vs TreeSet

공통점

  • 둘 다 not thread-safe 하다.
  • add/remove/conatins 계산에 O(log(N)) 의 시간이 소요된다.
  • element 를 특정 순서로 접근하기 위해 사용한다.

차이점

  • TreeSet 은 Set 이기 때문에 중복 element 를 추가할 수 없다. PriorityQueue 는 그런 제약사항이 없다.
  • TreeSet 은 내부 element 들을 정렬해두기 때문에 iterator 를 통해 순차적인 element 접근이 가능하다.
  • 반면에 PriorityQueue 는 head 가 가장 작은(큰) element 임을 보장한다. iterator 를 사용해서 순차적으로 접근할 수 없다 (peek/poll 으로 가능하다).

댓글 남기기