본문 바로가기

JAVA

[JAVA] Priority Queue

반응형

PriorityQueue 란?

우선순위가 높은 순서대로 정렬되는 큐 자료구조

 

priority queue 구현 방법

우선순위 큐에 저장할 객체는 필수적으로 Comparable 인터페이스를 구현해야 한다.

-> implement Comparable<Object>

 

그 다음 compareTo라는 메서드를 오버라이딩 해서

값이 크면 1을 값이 작으면 -1을, 같으면 0을 리턴해준다.

 

또한 get메서드를 만들어서 나중에 PQ에서 값을 불러올 수 있게 한다.

 

PriorityQueue 주요 함수

  • offer : list의 add와 같다.
  • isEmpty : Queue가 비었는지 확인
  • poll : 데이터 추출

priority queue 구현 소스

 

class Vehicle implements Comparable<Vehicle>{
    private String name;
    private int time;
    
    public Vehicle(String name, int time) {
        this.name = name;
        this.time = time;
    }
    public String getName() {
        return this.name;
    }
    public int getTime() {
        return this.time;
    }
    
    @Override
    public int compareTo(Vehicle target) {
        // 자신의 값이 작으면 -1
        // 자신의 값과 같으면 0
        // 자신보다 값이 크면 1
        if(this.time < target.getTime()) return -1;
        else if(this.time > target.getTime()) return 1;
        return 0;
    }
}

 

 


reference

https://pangsblog.tistory.com/23

반응형

'JAVA' 카테고리의 다른 글

[JAVA] Jackson library - 1  (0) 2021.05.30
[JAVA] Jackson library - 0  (0) 2021.05.30
[JAVA] Map  (0) 2019.11.09
[JAVA] Set  (0) 2019.11.09
[JAVA] List  (0) 2019.11.09