Notice
Recent Posts
Recent Comments
Link
drexqq
[Java, 자바] 스택(Stack), 큐(Queue) 본문
728x90
반응형
Java의 자료구조중 스택(stack)과 큐(Queue)에 대해 알아보자.
Stack - FILO (FILO : First In Last Out)
Queue - FIFO (FIFO : First In First Out)
위 그림을 보면 이해하기 쉽다.
그림을 쉽게 설명하자면 FILO는 상자에 물건을 차곡차곡 담는다고 생각하면 된다.
상자에 물건을 담게되면 어떻게 되는가 당연히 제일 처음에 넣은 물건은 제일 아래에 있어서 가장 마지막에 꺼낼 수 있다. 이게 FILO다.
FIFO는 차곡차곡 물건을 담은 상자에 아래쪽에서 물건을 꺼낸다고 생각하면 된다. 그렇게 되면 제일 처음에 들어간 물건을 가장 먼저 꺼내게 된다. 이게 FIFO라고 생각하면 될 것 같다.
Stack의 메서드
메서드 | 설 명 |
boolean empty( ) | Stack 이 비어있는지 알려줌 |
Object peek( ) | Stack 의 맨 위에 저장된 객체를 반환 pop( ) 과 달리 Stack 에서 객체를 꺼내지 않음(비었을 때는 EmptyStackException 발생) |
Object pop( ) | Stack 의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStackException 발생) |
Object push(Object item) | Stack 에 객체( item )를 저장 |
int search(Object o) | Stack 에서 주어진 객체( o )를 찾아서 그 위치를 반환, 못 찾으면 -1 을 반환(배열과 달리 위치가 1부터 시작) |
Queue의 메서드
메서드 | 설 명 |
boolean add(Object o) | 지정된 객체를 Queue 에 추가 성공하면 true를 반환, 저장공간이 부족하면 IllegalStateException 발생 |
Object remove( ) | Queue 에서 객체를 꺼내 반환. 비어있으면 NoSuchElementException 발생 |
Object element( ) | 삭제없이 요소를 읽어옴 peek 와 달리 Queue 가 비었을때 NoSuchElementException 발생 |
boolean offer(Object o) | Queue 에 객체를 저장 성공하면 true, 실패하면 false를 반환 |
Object poll( ) | Queue 에서 객체를 꺼내서 반환. 비어있으면 null을 반환 |
Object peek( ) | 삭제없이 요소를 읽어온다. Queue가 비어있으면 null을 반환 |
stack의 예제를 보자
import java.util.*;
public class mainClass {
public static void main(String[] args) {
Stack s = new Stack();
s.push("0");
s.push("1");
s.push("2");
System.out.println("stack");
while(!s.isEmpty()) {
System.out.println(s.pop());
}
}
}
실행 결과는 stack은 2, 1, 0순서로 나오게 된다.
728x90
반응형
'Back-End > Java' 카테고리의 다른 글
[Java, 자바] Factory Pattern(팩토리패턴) (0) | 2020.06.11 |
---|---|
[Java, 자바] Singleton(싱글톤) (0) | 2020.06.10 |
[Java, 자바] HashMap, TreeMap (0) | 2020.06.10 |
[Java, 자바] Iterator (0) | 2020.06.09 |
[Java, 자바] LinkedList (0) | 2020.06.09 |
Comments