스택(Stack)과 반대의 속성을 가진 배열입니다.
큐는 먼저 집어 넣은 데이터가 먼저 나오는 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 |