본문 바로가기
Programming/Algorithm&DataStructure

[JAVA/자료구조] Queue Interface

by prinha 2021. 8. 19.
반응형

Queue

선입선출(FIFO)

 

'대기열'을 뜻함

시간 순으로 어떤 작업 또는 데이터를 처리할 필요가 있는 것들은 큐의 성질을 갖고 있다.

대표적으로 알고리즘에서는 BFS(너비 우선 탐색)에 사용된다.

자바에서 제공하고 있는 큐는 인터페이스에 불과하고, 큐를 구현하는 클래스는 크게 세 가지가 있다.

PriorityQueue(우선순위 큐), ArrayDeque(배열 양방향 큐), LinkedList(연결리스트)

 

 

Queue Interface에 선언된 대표적인 메소드

java에서는 Vector클래스를 상속받다보니 아래의 클래스보다 훨씬 많은 메소드를 지원한다.

메소드 리턴 타입 설명
offer(E e) boolean 큐의 마지막에 요소를 추가한다.
poll() E 큐의 첫번째 요소를 제거하고 제거된 요소를 반환한다.
peek() E 큐의 첫번째 요소를 제거하지않고 반환한다.

 

offer()의 경우 리스트에서 add()와 비슷한 역할이고, poll()은 remove(), peek()은 element()와 비슷한 역할이다.

차이점은 add(), remove(), element()는 내부적으로 예외를 처리하고 있지만

Queue의 메소드의 경우 예외를 던지는 것이 아닌 특별한 값을 던진다. 

일반적으로 null or false를 던진다고 생각하면 된다.

 

 

package Interface_form;
 
/**
 * 
 * 자바 Queue Interface입니다. <br>
 * Queue는 ArrayQueue, LinkedQueue,
 * Deque, PriorityQueue 에 의해 구현됩니다.
 * 
 * @author st_lab
 * @param <E> the type of elements in this Que
 *
 * @version 1.0
 * 
 */
 
 
public interface Queue<E> {
	
	/**
	 * 큐의 가장 마지막에 요소를 추가합니다.
	 * 
	 * @param e 큐에 추가할 요소 
	 * @return 큐에 요소가 정상적으로 추가되었을 경우 true를 반환 
	 */
	boolean offer(E e);
	
	/**
	 * 큐의 첫 번째 요소를 삭제하고 삭제 된 요소를 반환합니다.
	 * 
	 * @return 큐의 삭제 된 요소 반환 
	 */
	E poll();
	
	/**
	 * 큐의 첫 번째 요소를 반환합니다.
	 * 
	 * @return 큐의 첫 번째 요소 반환 
	 */
	E peek();
	
	
}

 

 


출처 및 참고

https://st-lab.tistory.com/181

https://prinha.tistory.com/entry/JAVA%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%9E%90%EB%B0%94-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACjava-collection-framework

 

[JAVA/자료구조] 자바 컬렉션 프레임워크(java collection framework) 총정리

- 컬렉션(collection) : 여러 객체(데이터)를 담을 수 있는 자료구조, 다수의 데이터 그룹 - 프레임워크(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식 ▶ 컬렉션 프레임워크(collection framework)

prinha.tistory.com

 

 

반응형