반응형
* Deque란?
- 덱은 Double-Ended Queue의 줄임말로 큐의 양쪽에 데이터를 넣고 뺼 수 있는 형태의 자료구조이다.
하나의 자료구조에 queue와 stack을 사용할 수 있다 생각하면 된다.
덱(Deque)은 어떤 쪽으로 입력하고 어떤 쪽으로 출력하느냐에 따라서 스택(Stack)으로 사용할 수도 있고, 큐(Queue)로도 사용할 수 있다. 특히 한쪽으로만 입력 가능하도록 설정한 덱을 스크롤(scroll)이라고 하며, 한쪽으로만 출력 가능하도록 설정한 덱을 셸프(shelf)라고 한다.
* Deque 라이브러리 선언 방법
자바에서의 Deque는 인터페이스로 구현되어 있다.
Deque<String> deque = new ArrayDeque<>();
Deque<String> deque = new LinkedBlockingDeque<>();
Deque<String> deque = new ConcurrentLikedDeque<>();
Deque<String> deque = new LinkedList<>();
* Deque 값 추가
덱의 앞부분에 데이터 추가 : deque.addFirst() / deque.offerFirst()
덱의 뒷부분에 데이터 추가 : deque.add() / deque.offer() / deque.addLast() / deque.offerLast()
* Deque 값 제거
덱의 앞부분에 데이터 제거 : deque.remove() / deque.poll() / deque.removeFirst() / deque.pollFirst()
덱의 뒷부분에 데이터 제거 : deque.removeLast() / deque.pollLast()
* Deque 값 확인
덱의 앞부분 데이터 확인 : deque.getFirst() / deque.peek() / deque.peekFirst()
덱의 뒷부분 데이터 확인 : deque.getLast() / deque.peekLast()
* Deque 순회
for문과 Iterator를 이용하여 Deque에 있는 값들을 순회할 수 있다.
// for문을 이용한 순회
for(String item : deque){
System.out.println(item);
}
// iterator를 이용한 순회
Iterator<String> iterator = deque.iterator();
while(iterator.hasNext()){
String item = iterator.next();
System.out.println(item);
}
// 역순회
Iterator<String> reverseIterator = deque.descendingIterator();
while(reverseIterator.hasNext()){
String item = reverseIterator.next();
System.out.println(item);
}
반응형
'개념공부' 카테고리의 다른 글
[기초 코딩용어 해설] 01. 컴퓨터와 인터넷 (0) | 2021.12.03 |
---|---|
[BigInteger] 무한대로 큰 수를 계산해야 한다면? BigInteger (0) | 2021.11.05 |
[Junit] 단정함수 및 기능 (0) | 2021.10.22 |
[Spring / BackEnd] 404 Error Exception 날리는 법 (0) | 2021.10.20 |
[Graph] 다익스트라(Dijkstra) 알고리즘 (0) | 2021.09.30 |
댓글