1. 스택(Stack)
스택은 데이터를 저장하는 선형 자료구조로, Last In, First Out: LIFO (후입선출)의 원칙을 따른다.
가장 최근에 스택에 추가된 요소가 가장 먼저 제거되는것을 의미한다.
스택은 자료의 삽입과 삭제가 맨 끝에서 이루어지는 구조를 가지고있다.
자바에서 스택은 Stack 클래스를 통해 제공된다.
스택의 선언 및 초기화 :
Stack<Integer> myStack = new Stack<>(); // 스택 선언
myStack.push(1); // 스택에 1 추가
int topElement = myStack.pop(); // 스택에서 요소 제거 및 반환
2. 큐(Queue)
큐는 데이터를 저장하는 선형자료구조이지만, 스택과 달리 First In, First Out: FIFO(선입선출) 의 원칙을 따른다.
가장 최근에 추가된 요소가 가장먼저 제거된다는것을 의미한다.
큐는 한쪽끝에서 자료의 삽입이 이루어지고, 다른 반대쪽에서는 삭제가 이루어진다.
Enqueue 는 큐에 데이터를 추가하는 작업을 뜻하고, Dequeue 는 큐에 데이터를 삭제하는 작업을 뜻한다.
큐의 선언 및 초기화 :
Queue<Integer> myQueue = new LinkedList<>(); // 큐 선언
myQueue.offer(1); // 큐에 1 추가
int frontElement = myQueue.poll(); // 큐에서 요소 제거 및 반환
자바에서 큐의 구현체는 LinkedList 로 사용된다. 그 이유는 LinkedList 가 Queue 의 인터페이스를 구현하고 있으며, 큐의 동작을 효율적으로 지원하기 때문이다.
'Java > Java😊' 카테고리의 다른 글
[Java] 리스트(List)와 배열(Array) 개념과 사용법 + 자료구조 (0) | 2023.06.13 |
---|---|
[Java] call by value 는 있지만, call by reference 는 없다. (0) | 2023.06.07 |
[Java] 기본타입과 참조타입에 대한 이해 (데이터타입) (0) | 2023.05.23 |
[Java] TCP 통신에서 클라이언트의 국가를 확인하는 방법 (0) | 2023.05.10 |
[Java] enum 개념과 예시 (0) | 2023.05.10 |