Queue의 add와 offer의 차이

devhan·2023년 8월 3일

add vs offer

Queue는 요소의 추가를 위해 'add'와 'offer' 2가지 메소드를 제공한다.(공식문서)

boolean offer(Object o) {}
void add(Object o) throws Exception {}

offer는 실패시 false를 반환하지만, add는 throw를 던진다.
비슷하게는 poll과 remove가 있다.

사용의 유연성을 위해 2가지의 메소드를 제공하는 것 같지만, 기본적으로 offer와 poll을 사용하는 편이 안정적일 것 같다.

  • Exception: add, remove, element
  • Safe: offer, poll, peek

Deque는?

데크도 queue와 마찬가지로 add, remove, get을 사용하는 경우는 Exception을 던지고, offer, poll, peek를 사용하는 경우는 에러를 발생시키지 않는다.

  • Exception: addFirst, addLast, removeFirst, removeLast, getFirst, getLast
  • Safe: offerFirst, offerLast, pollFirst, pollLast, peekFirst, peekLast
profile
한번에 한가지씩

0개의 댓글