프로그래머스 문제를 풀다가 알게된 사실을 기록해봤다.
기본적으로 우선순위 큐에서 poll과 remove 메서드는
poll() : 우선순위가 가장 높은 값 반환 후 제거, 큐가 비어있을때는 null을 리턴
remove() : 우선순위가 가장 높은 값 반환 후 제거, 비어있으면 예외(NoSuchElementException)발생
로 알고있다.
큐가 비어있을 때 poll()을 객체로 사용하면 NPE(Null Pointer Exception)이 발생한다.
=> 객체로 사용하지않고 그냥 메서드로 사용하면 ex) a.poll(); NPE는 발생X
remove메서드는 remove()와 remove(Object o)가 있는데 ,
remove()는 AbstractQueue 추상 클래스의 remove 메서드를 사용하는 것이고
remove(Object o)는 PriorityQueue 클래스의 remove(Object o)메서드를 사용하는 것이다.
큐가 비어있지 않을때,
remove()는 poll()과 같이 값을 반환하지만, remove(Object o)는 true, false( boolean Type)을 반환한다.
'Algorithm > Data Structure' 카테고리의 다른 글
[Java] int 형(Primitive type)배열을 List로 + 내림차순( Stream 사용) (0) | 2022.11.22 |
---|---|
[Java] 자바의 데이터 타입(primitive type, reference type) (0) | 2022.11.22 |
[Python] 힙 자료구조 / 힙큐(heapq) (0) | 2022.09.19 |
Python Deque(Double-Ended Queue) + Stack, Queue 간단개념 (0) | 2021.12.23 |
Arrays.sort ( 사전순서대로 정렬해주는 메소드) (0) | 2021.10.25 |