JCF Queue - add() vs offer() ☕️

이수정·2023년 10월 16일
post-thumbnail

큐(Queue)란?

먼저 들어오는 데이터가 먼저 나가게 되는 선입선출(First In First Out: FIFO)의 자료구조이다. 대기열이라고도 하며 원형 큐, 우선순위 큐, Deque(Double Ended Queue) 등의 변형이 존재한다.

큐의 후단(rear)에 요소를 삽입하는 연산을 Enqueue, 전단(front)에 요소를 삭제하는 연산을 Dequeue라고 한다.

Java Collections Framework의 Queue

  • java.util에 있는 클래스로 Collection<E> 인터페이스를 상속받는다.
    public interface Queue<E> extends Collection<E> {
    		// Enqueue 연산
    		boolean add(E e);
    		boolean offer(E e);
    		
    		// Dequeue 연산
    		E remove();
    		E poll();
    
    		// ...
    }
    • Enqueue 연산
      • add(E e) : 큐가 가득 차지 않고 즉시 삽입할 수 있다면 true를 반환하고, 큐가 가득 차 더 이상 삽입할 수 없는 경우 IllegalStateException 예외를 던진다.
      • offer(E e) : 큐가 가득 차지 않고 즉시 삽입할 수 있다면 true를 반환하고, 큐가 가득 차 더 이상 삽입할 수 없는 경우 false를 반환한다.
    • Dequeue 연산
      • remove() : 큐의 헤드를 제거한다. 큐가 비어있는 경우 NoSuchElementException 예외를 발생시킨다.
      • poll() : 큐의 헤드를 제거한다. 큐가 비어있는 경우 null을 반환한다.

결론 ✨

연산예외 발생값 반환
삽입(Enqueue)add(E e)offer(E e)
삭제(Dequeue)remove()poll()
profile
쌓다 보면 탑이 될 거야 🗼

0개의 댓글