티스토리 뷰

노트

JAVA의 우선순위 큐

tose33 2022. 3. 3. 22:19

c++에서 벡터에 pair이나 tuple을 저장을 java에서는 클래스를 따로 만들어서 사용한다.

 

class Pair
{
    int distance, cur;
    public Pair(int _dis, int _cur) { distance = _dis; cur = _cur; }
}

이런식으로.

 

자바의 우선순위큐에 custom class를 넣으면 c++의 compare 함수를 정의하듯이 우선순위큐가 비교할 기준을 제시해 줘야한다.

 

class Pair implements Comparable<Pair>
{
    int distance, cur;
    public Pair(int _dis, int _cur) { distance = _dis; cur = _cur; }

    @Override
    public int compareTo(Pair target) {
        return this.distance < target.distance ? 1 : -1;
    }
}

이렇게 comparable interface를 implement한다.

compareTo에 전달되는 Pair  target 객체는 this 객체와 비교할 객체이다. 

여기서는 Pair의 distance 변수를 기준으로 내림차순하고 있다.

 

'노트' 카테고리의 다른 글

PS 문제에서 메모리 초과 나는 경우  (0) 2022.03.15
c++) Priority Queue 구현  (0) 2022.03.07
c++) pow 함수와 부동소수점  (0) 2022.02.10
python 자주 쓰는 함수 정리  (0) 2022.01.29
c#) 가변배열  (0) 2022.01.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함