[java]우선순위 큐(PriorityQueue)

큐에 값을 넣으면 자동으로 정렬되는 큐

        // 작은 숫자가 우선순위가 높음
        PriorityQueue<Integer> queue = new PriorityQueue<>();

        // 큰 숫자가 우선순위가 높음
        // PriorityQueue<Integer> queue = new PriorityQueue<>(Comparator.reverseOrder());

        queue.offer(3);   // queue.add(3); 처럼 사용가능(같은 기능 alias)
        queue.offer(4);
        queue.offer(1);
        queue.offer(2);

        // 우선 순위가 가장 높은 값 출력
        assertThat(queue.peek()).isEqualTo(1);

        // 우선 순위가 가장 높은 값 반환하고, 큐에서 값을 제거
        assertThat(queue.poll()).isEqualTo(1);
        assertThat(queue.poll()).isEqualTo(2);

        // 우선 순위가 가장 높은 값 반환하고, 큐에서 값을 제거(poll 과 같은 기능)
        assertThat(queue.remove()).isEqualTo(3);

        // 지정된 원소값을 제거, 제거할 수 있으면 true, 없으면 false 반환
        assertThat(queue.remove(4)).isEqualTo(true);

        // 큐가 비어있다면 null 반환
        assertThat(queue.poll()).isNull();

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다.