반응형
🚀
덱(Deque)은 Double Ended Queue의 줄임말로 큐의 양쪽에서 삽입과 삭제를 수행할 수 있는 자료구조입니다.
⭐️ Deque 선언
Deque<Integer> deque = new LinkedList<>();
Integer형 선언
⭐️ Deque에 값 삽입
add()
addFirst()
addLast()
offer()
offerFirst()
offerLast()
- add()
마지막에 원소 삽입
용량 초과 시 예외 발생 - addFirst()
맨 앞에 원소 삽입
용량 초과 시 예외 발생 - addLast()
마지막에 원소 삽입
용량 초과 시 예외 발생 - offer()
마지막에 원소 삽입
삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환 - offerFirst()
맨 앞에 원소 삽입
삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환 - offerLast()
마지막에 원소 삽입
삽입 성공 시 true, 용량 제한에 걸리는 경우 false 반환
⭐️ Deque에 값 삭제
remove()
removeFirst()
removeLast()
poll
pollFirst()
pollLast()
- remove()
맨 앞의 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 예외 발생 - removeFirst()
맨 앞의 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 예외 발생 - removeLast()
마지막 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 예외 발생 - poll
맨 앞의 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 null 리턴 - pollFirst()
맨 앞의 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 null 리턴 - pollLast()
마지막 원소 제거 후 해당 원소를 리턴
덱이 비어있는 경우 null 리턴
⭐️ Deque 원소 확인
getFirst()
getLast()
peek()
peekFirst()
peekLast()
- getFirst()
맨 앞의 원소를 리턴
덱이 비어있는 경우 예외 발생 - getLast()
마지막 원소를 리턴
덱이 비어있는 경우 예외 발생 - peek()
맨 앞의 원소를 리턴
덱이 비어있는 경우 null 리턴 - peekFirst()
맨 앞의 원소를 리턴
덱이 비어있는 경우 null 리턴 - peekLast()
마지막 원소를 리턴
덱이 비어있는 경우 null 리턴
⭐️ 기타
- removeFirstOccurrence(x)
덱의 맨 앞부터 탐색하여 x와 동일한 첫 원소를 제거
동일한 원소가 없을 시 덱이 변경되지 않음 - removeLastOccurrence(x)
덱의 마지막부터 탐색하여 x와 동일한 첫 원소를 제거
동일한 원소가 없을 시 덱이 변경되지 않음 - element() == removeFirst()
- addFirst() == push()
- removeFirst() == pop()
- remove(x)
removeFirstOccurrence(x)와 동일 - contains(x)
덱에 x와 동일한 원소가 있는지 true 혹은 false 반환 - size()
덱의 원소 개수 리턴 - iterator()
덱의 반복자(iterator) 반환 - isEmpty()
덱이 비어있는지 true 혹은 false 반환
⭐️ 덱 순회 방법
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
Deque<Integer> deque = new LinkedList<>();
deque.add(3);
deque.add(7);
deque.add(5);
for (int de : deque) {
System.out.print(de + " ");
}
System.out.println();
for (Iterator<Integer> it = deque.iterator(); it.hasNext();) {
System.out.print(it.next() + " ");
}
System.out.println();
Iterator<Integer> it = deque.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
반응형
'☕️JAVA' 카테고리의 다른 글
[JAVA] SHA-256 암호화 예제코드 (SALT 사용) (0) | 2022.03.03 |
---|---|
[JAVA] Queue(큐) 사용법 (add vs offer / remove vs poll / element vs peek) (0) | 2021.12.07 |
[JAVA] 자바 형식화된 출력 - printf() 사용 예제 (0) | 2021.10.19 |
[JAVA] 자바 String to Int, Int to String 형변환 (0) | 2021.10.07 |
[JAVA] 명품 자바 에센셜 연습문제 3장 이론&실전 문제 풀이 (2) | 2021.01.11 |