티스토리 뷰
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Deque.html
A linear collection that supports element insertion and removal at both ends.
양 끝단에서 삽입/삭제 연산을 지원하는 linear collection(?)
The name deque is short for "double ended queue" and is usually pronounced "deck".
deque는 "double ended queue"의 줄임말로 보통 "덱, deck"이라고 불린다
Most Deque implementations place no fixed limits on the number of elements they may contain, but this interface supports capacity-restricted deques as well as those with no fixed size limit.
대부분의 덱 구현은 원소의 개수 제한을 두고있지 않으나 이 인터페이스는 고정된 크기의 덱 또한 제공을 한다.
This interface defines methods to access the elements at both ends of the deque.
이 인터페이스는 덱의 양끝단의 원소에 접근할 수 있는 메소드를 정의한다
Methods are provided to insert, remove, and examine the element.
삽입, 삭제, 조사(탐색) 메소드를 제공함
Each of these methods exists in two forms: one throws an exception if the operation fails, the other returns a special value (either null or false, depending on the operation).
각각의 메소드들은 두가지 형태로 구성된다. : 하나는 예외를 던지는 형태, 다른 하나는 특정값을 리턴하는 형태
(예전에 큐 인터페이스랑 똑같음)
The latter form of the insert operation is designed specifically for use with capacity-restricted Deque implementations; in most implementations, insert operations cannot fail.
The twelve methods described above are summarized in the following table:
후자(Special Value를 리턴하는)는 capacity-restricted 덱을 구현할때 쓰라고 만들어 진거다.
( -> 그니까 평소에는 예외를 던지는 메소드를 써서 문제점을 조기에 발견하자)
대부분의 구현에서 삽입연산은 실패할 일이 없다.
This interface extends the Queue interface. When a deque is used as a queue, FIFO (First-In-First-Out) behavior results.
이 덱 인터페이스는 Queue 인터페이스를 상속한다. 덱이 큐처럼 사용될때는, FIFO처럼 행동한다.
(큐는 FIFO 스택은 LIFO)
Elements are added at the end of the deque and removed from the beginning. The methods inherited from the Queue interface are precisely equivalent to Deque methods as indicated in the following table:
원소는 덱의 꼬리 부분에 추가되고, 머리 부분에서 제거된다.
테이블의 2열 메소드들을 사용하면 큐 처럼 사용된다
Deques can also be used as LIFO (Last-In-First-Out) stacks. This interface should be used in preference to the legacy Stack class.
덱은 또한 LIFO 스택처럼 사용할 수도 있다. 이 인터페이스는 legach Stack class 에 우선해서 사용되어질 수 있다(??)
(in preference to : ~에 우선해서)
When a deque is used as a stack, elements are pushed and popped from the beginning of the deque. Stack methods are equivalent to Deque methods as indicated in the table below:
덱이 스택처럼 사용되어질 떄, 원소는 덱의 머리 부분에서 삽입되고 삭제된다.
Note that the peek method works equally well when a deque is used as a queue or a stack; in either case, elements are drawn from the beginning of the deque.
peek 메소드는 덱이 큐로 쓰이거나 스택으로 쓰이거나 똑같이 동작한다는 것에 유의하자
; 두 종류 모두 덱의 머리부분 원소를 리턴한다
This interface provides two methods to remove interior elements, removeFirstOccurrence and removeLastOccurrence.
인터페이스는 덱의 원소를 제거하는 두개의 메소드를 제공한다.. 머리부분 제거랑 꼬리부분 제거랑
Unlike theListinterface, this interface does not provide support for indexed access to elements.
List 인터페이스와는 다르게 인덱스로 원소를 찾는 메소드는 제공되지 않는다!!
While Deque implementations are not strictly required to prohibit the insertion of null elements, they are strongly encouraged to do so.
덱 구현이 null 원소 삽입을 엄격히 금하지는 않으나 하지 않을것을 강력하게 권장한다
Users of any Deque implementations that do allow null elements are strongly encouraged not to take advantage of the ability to insert nulls. This is so because null is used as a special return value by various methods to indicate that the deque is empty.
왜냐하면 null값은 special value(null)을 리턴하는 메소드의 리턴값과 겹칠 수 있기 때문
Deque implementations generally do not define element-based versions of the equals and hashCode methods, but instead inherit the identity-based versions from class Object.
덱 구현은 보통 elememt-based의 equals()와 hashCode() 메소드를 정의하지는 않는다
다만 Object 클래스의 identity-based 버전을 상속받아 사용한다
3줄 요약
1. 덱은 스택이량 큐 메소드를 짬뽕해서 섞어놓은 자료구조이다
2. 메소드는 Special Value를 리턴하는 메소드랑 예외를 던지는 메소드 두종류로 나뉜다
예외 던지는 메소드 : addFirst, removeFirst, getFirst // addLast, removeLast, getLast
리턴 값 던지는 메소드 : offerFirst, pollFirst, peekFirst // offerLast, pollLast, peekLast
3. 인덱스로 값 위치 찾는 메소드는 없음
'JAVA' 카테고리의 다른 글
자바 정렬 알고리즘 기본 형태 | 버블, 선택, 삽입, 합병, 퀵 (0) | 2021.08.19 |
---|---|
자바 알고리즘 정복 3 - 스택, 큐 (0) | 2021.08.07 |
자바 알고리즘 정복 2 - 제네릭, 접근제한자 (0) | 2021.08.06 |
자바 알고리즘 정복 - 1 (0) | 2021.08.03 |
영어공부 | JAVA Interface Queue<E> API 문서 해석 (0) | 2021.07.26 |