Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

Java

Java 우선순위 큐, Priority Queue

2020. 8. 21. 21:55

컬렉션들 list, map, set ... 난 집어넣고 바로 최댓값이나 최솟값을 뽑아내는 그런 간편한게 필요한데..? 싶으면

 

우선순위 큐를 사용하면 된다. 힙을 이용하여 구현이 되어있다.

 

 

 
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
29
30
31
32
33
34
35
36
    static class xy implements Comparable<xy>{
        String x;
        int y=0;
 
        xy(String x, int y) {
            this.x = x;
            this.y = y;
        }
 
 
        @Override
        public int compareTo(xy o) {
            if(this.y>o.y) return 1;
            else return -1;
        }
    }
    public static void main(String[] args) {
        PriorityQueue<Integer> que = new PriorityQueue<>();     // 기본적으로 우선순위 큐는 오름차순을 가지고 있음 Collections.reverseOrder() 를 괄호에 넣어서 반대로 가능하다.
        que.add(5);
        que.add(6);
        que.add(8);
        System.out.println(que.peek());     //5를 return 삭제는 하지 않음
        System.out.println(que.poll());     //5를 삭제하면서 5를 return 해줌
        System.out.println(que.peek());     //5가 삭제됨에따라 6이 출력 됨
        que.remove(8);                   //8 삭제
        System.out.println(que.size());     //크기인 1이 출력됨 6만 남았기 때문
 
 
        //이곳에 comparable를 바로 익명클래스로 정의 가능. 이 경우엔 xy 내부에 정의 했음. 마찬가지로 이 상황에서 reverseOrder를 넣어주면 xy에 오름차순으로 정의했으니 내림차순으로 정렬됨
        //xy와 같이 클래스를 넣게되면 comparable 없이는 오류가 떠서 반드시 정의를 해주어야 함
        PriorityQueue<xy> que_2 = new PriorityQueue<>(Collections.reverseOrder());
        que_2.add(new xy("a", 1));
        que_2.add(new xy("b", 2));
        que_2.add(new xy("c", 3));
        System.out.println(que_2.peek().y);
    }
Colored by Color Scripter
cs

'Java' 카테고리의 다른 글

Java HashMap 메서드 computeIfAbsent  (0) 2020.08.27
Java String 메서드 정리 (계속해서 추가)  (0) 2020.08.25
Java 형변환 정리  (0) 2020.08.19
Set 에 대하여  (0) 2020.08.18
Java 조합과 순열  (0) 2020.08.18
    'Java' 카테고리의 다른 글
    • Java HashMap 메서드 computeIfAbsent
    • Java String 메서드 정리 (계속해서 추가)
    • Java 형변환 정리
    • Set 에 대하여
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바