스택, 큐, 덱 - java.util.LinkedList 기반 큐

이현빈·2025년 2월 25일
0

1. java.util.Queue 인터페이스

package java.util;

public interface Queue<E> extends Collection<E> {
	// 1. 큐의 맨 뒤에 데이터 추가
	boolean add(E e);
    boolean offer(E e);
    
    // 2. 첫번째 데이터를 큐에서 제거
    E remove();		// 실패 시 예외 발생
    E poll();		// 실패해도 예외 발생 없이 null을 반환
    
    
    // 3. 큐에 저장된 첫번째 데이터를 확인(해당 데이터는 큐에서 제거되지 않음)
    E element();	// 실패 시 예외 발생
    E peek();		// 실패해도 예외 발생 없이 null을 반환
}

2. java.util.LinkedList에서의 큐 구현

데이터 추가

add() 메서드

offer() 메서드

public boolean add(Object e) / public boolean offer(Object e)

  • 큐의 맨 마지막에 새로운 데이터를 추가
  • Queue의 offer() 메서드는 add() 메서드를 바탕으로 구현

데이터 삭제

remove() 메서드

public Object remove()

  • 큐에 저장된 첫번째 데이터를 제거
  • 빈 큐에서 실행할 경우 NoSuchElementException 발생
  • java.util.Deque 인터페이스에 정의된 removeFirst() 메서드에 의해 구현됨

poll() 메서드

public Object poll()

  • remove()와 기능이 동일
  • 빈 큐일 경우 예외 발생 없이 null을 반환

데이터 조회

element() 메서드

public Object element()

  • 큐에 저장된 첫번째 데이터를 반환
  • 빈 큐에서 실행할 경우 NoSuchElementException 발생
  • java.util.Deque 인터페이스에 정의된 getFirst() 메서드에 의해 구현됨

peek() 메서드

public Object peek()

  • element()와 기능이 동일
  • 빈 큐일 경우 예외 발생 없이 null을 반환

Reference

0개의 댓글