drexqq

[Java, 자바] 스택(Stack), 큐(Queue) 본문

Back-End/Java

[Java, 자바] 스택(Stack), 큐(Queue)

drexqq 2020. 6. 10. 19:58
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