1) 스택(Stack)

 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 자료구조이다, 이것을 LIFO(Last In First Out)이라고 한다. 

스택의 기본 자료 구조

 스택은 다음과 같이 선언한다.

import java.util.Stack;

Stack<자료형> 스택명 = new Stack();

 스택은 다음과 같은 메소드를 지원한다.

구분			설명
push(value)	스택에 값을 저장한다.
pop()		스택의 값을 제거한다.
clear()		스택의 값을 전부 제거한다.
peek()		스택의 마지막 값을 반환한다.
size()		스택의 크기를 반환한다.
empty()		스택이 비어있는지 반환한다.
contains(value)	스택에 데이터가 존재하는지 반환한다.

2) 큐(Queue)

 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게되는 FIFO(First In First Out)구조로 되어있다. 

큐의 기본 자료 구조

 큐는 다음과 같이 선언한다.

import java.util.LinkedList;
import java.util.Queue;

Queue<자료형> 큐명 = new LinkedList<>();

 큐는 다음과 같은 메소드를 지원한다.

구분			설명
push(value)	큐에 값을 저장한다.
poll()		큐의 값을 제거한다.
clear()		큐의 값을 전부 제거한다.
peek()		큐의 처음 값을 반환한다.

3) ArrayDeque

 스택의 문제점과 큐의 문제점을 보완하기 위해서 사용하는 자료 구조이다. 특히 LIFO의 구조를 만들 때, Stack 보다 선호되는 자료 구조이다.

ArrayDeque의 기본 자료 구조

 ArrayDeque는 다음과 같이 선언한다

import java.util.ArrayDeque;

ArrayDeque<자료형> 이름 = new ArrayDeque<>();

 ArrayDeque는 다음과 같은 메소드를 지원한다.

구분			설명
addFirst(value)		큐의 처음 위치에 데이터를 삽입하고, 데이터를 뒤로 한칸씩 움직여준다.
addLast(value)		큐의 마지막 위치에 데이터를 삽입한다.
offerFirst(value)	큐의 처음 위치에 데이터를 삽입하고, 데이터를 뒤로 한칸씩 움직여준다. 
			단, 큐의 크기에서 예외처리가 발생할 경우, Boolean 값을 반환한다.
offerLast(value)	큐의 마지막 위치에 데이터를 삽입한다. 
			단, 큐의 크기에서 예외처리가 발생할 경우, Boolean 값을 반환한다.
size()			큐의 크기를 반환한다.
removeFirst()		큐의 처음 데이터를 삭제하고 값을 반환한다.
removeLast()		큐의 마지막 데이터를 삭제하고 값을 반환한다.
poolFirst()		큐의 처음 데이터를 삭제하고 값을 반환한다.
poolLast()		큐의 마지막 데이터를 삭제하고 값을 반환한다.
peekFirst()		큐의 처음 데이터를 반환한다.
peekLast()		큐의 마지막 데이터를 반환한다.

'Java' 카테고리의 다른 글

System.out.println(Object)가 뭐지?  (0) 2022.11.30
16. Java, 제네릭(Generics)  (0) 2022.11.08
14. Java(컬렉션), 리스트, 셋, 맵  (0) 2022.11.08
13. Java, 컬렉션(Collection)  (0) 2022.11.08
12. Java(API), 시간 다루기  (0) 2022.11.07

+ Recent posts