Formoat's Open Blog
컬렉션 - Stack, Queue 본문
1. Stack
1) 후입선출 (LIFO: Last In First Out) 구조를 가지고 있다.
2) 데이터의 추가/삭제를 하는 입/출구가 한 개로 공통으로 사용함
3) 스택은 Collection -> List -> Vector 를 상속 받는다. (상위 클래스의 메소드들을 가지고 있음)
Return Type | Method | Remarks |
E | push(E item) | 스택에 데이터를 넣는다. |
E | pop() | 스택에서 데이터를 가져오고 가져온 데이터는 스택에서 삭제한다. |
E | peek() | 스택에서 데이터를 가져오고 가져온 데이터를 스택에서 삭제하지 않는다. |
<표> Stack 주요 메소드
StackExample.java
public class StackExample { public static void main(String[] args) { Stack<String> stack = new Stack<>(); stack.push("김태호"); stack.push("김병준"); stack.push("김태영"); stack.push("최웅진"); System.out.println("스택의 top위치의 요소 체크: " + stack.peek()); System.out.println("스택의 top위치의 요소 반환: " + stack.pop()); System.out.println("스택의 top위치의 요소 반환: " + stack.pop()); } }
// 실행결과 // ---------------------------------------------------- 스택의 top위치의 요소 체크: 최웅진 스택의 top위치의 요소 반환: 최웅진 스택의 top위치의 요소 반환: 김태영
2. Queue
1) 선입선출 (FIFO: First In First Out) 구조를 가지고 있다.
2) 데이터의 추가/삭제를 하는 입/출구를 각각 가지고 있다.
3) 큐는 Collection 을 상속 받는다. (상위 클래스의 메소드들을 가지고 있음)
4) 구현은 LinkedList, PriorityQueue를 이용해 구현
Return Type | Method | Remarks |
boolean | offer(E e) | 큐에 주어진 데이터를 넣는다. |
E | poll() | 큐에서 데이터를 가져오고 가져온 데이터는 큐에서 삭제한다. |
E | peek() | 큐에서 데이터를 가져오고 가져온 데이터는 큐에서 삭제하지 않는다. |
<표> Stack 주요 메소드
QueueExample.java
public class StackExample { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); queue.offer("서울"); queue.offer("부산"); queue.offer("대구"); queue.offer("인천"); System.out.println("큐의 first 반환: " + queue.poll()); System.out.println("큐의 first 반환: " + queue.poll()); System.out.println("큐의 first 체크: " + queue.peek()); System.out.println("큐의 first 반환: " + queue.poll()); } }
// 실행결과 // ---------------------------------------------------- 큐의 first 반환: 서울 큐의 first 반환: 부산 큐의 first 체크: 대구 큐의 first 반환: 대구
'Java > Java Basic' 카테고리의 다른 글
스트림 중간 처리 (0) | 2019.09.04 |
---|---|
스트림 (Stream) (0) | 2019.09.04 |
컬렉션 - Tree (0) | 2019.09.04 |
컬렉션 - Map (0) | 2019.09.04 |
컬렉션 - Set (0) | 2019.09.04 |
Comments