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