자바/API

자바 API : 큐(Queue) ,Deque사용법

류창 2021. 10. 4. 22:12
반응형

스택(Stack)과 반대의 속성을 가진 배열입니다.

 

https://taehoung0102.tistory.com/entry/%EC%9E%90%EB%B0%94-API-%EC%8A%A4%ED%83%9DStack-%EC%82%AC%EC%9A%A9%EB%B2%95

 

자바 API : 스택(Stack) 사용법

스택은 가장 먼저들어온것을 나중에 처리하고, 가장 늦게들어온것을 먼저 처리합니다. 즉, (LIFO - Last In First Out) 원리입니다. 예제로, 접시쌓기라고 생각하시면 매우편합니다. 저희가 접시를 설

taehoung0102.tistory.com

 

큐는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조 를 뜻합니다.

 

실생활로 예제를 들어본다면... 

 

손님들이 주문을 한 순서대로, 요리사가 주문한 순서대로 요리를하고 서빙하는것이라고 생각하시면 편합니다.

 

 

Queue 선언:

1
Queue<Object> que = new LinkedList<>();
cs

 

 

<알고리즘에서 자주쓰이는 메소드 위주로 정리하겠습니다.>

 

add(data) : 데이터를 추가합니다. (특징: 넣을 공간이 없으면 Exception)

 

offer(data): 데이터를 추가합니다.(특징: 넣을 공간이 없으면 false 반환)

 

remove(data) : 데이터를 삭제합니다. (특징: 삭제할 데이터가 없으면 Exception)

 

poll(data) : 데이터를 삭제합니다. (특징: 삭제할 데이터가 없으면 null 반환)

 

element():읽을 첫번째 요소(가장 먼저 입력된값)를 읽어옵니다. (읽을 요소가없으면 Exception)

 

peek(): element()와 동일합니다. (But, 읽을 요소가없으면 null 반환)

 

size() : 큐의 사이즈 반환  (int) 반환

 

isEmpty(): 큐가 비어있는지?   (boolean) 반환 

 

// add vs offer, remove vs poll 무엇을 써야할까?

무엇을 쓰든 상관은없다. 편한거 사용하시면 됩니다.

 

예외(Exception)를 터트리고싶다 -> add, remove

false나 null로 받고싶다 -> offer, poll //

 

------------------------------------------------------------------------------------

 

큐랑 동시에 같이 알아두면 좋은 Deque를 소개하겠습니다.

 

Deque는  스택의 LIFO 와 큐의 FIFO를 합친 자료구조입니다.

즉, 앞에서 넣어도되고 뒤에서부터 넣어도되고 뺄때도 앞에서 뺄수잇고 뒤에서부터 뺄수있다.

 

DeQue 선언:

1
Deque<Object> dq = new ArrayDeque<Object>();
cs

 

사용법:

 

addFirst(data): 앞쪽부터넣음

(offerFirst와 동일 차이점은 앞에 서술한 큐와 동일함)

addLast(data): 뒷쪽부터 넣음

(offerLast와 동일 차이점은 앞에 서술한 큐와 동일함)

 

removeFirst(data): 앞쪽부터 삭제

(pollFirst 동일)

 

removeLast(data): 뒤쪽부터 삭제

(pollLast 동일)

 

peekFirst() :맨앞  조회

peekLast(): 맨뒤  조회

 

size() : 큐의 사이즈 반환  (int) 반환

 

isEmpty(): 큐가 비어있는지?   (boolean) 반환 

 

contains(data): data가 포함되어있는지? 

반응형

'자바 > API' 카테고리의 다른 글

자바 Map 과 MultiValueMap의 대해서  (0) 2022.04.21
자바 API: 문자열(String) 메소드  (0) 2021.10.06
자바 API : 스택(Stack) 사용법  (0) 2021.10.04