JAVA Programming

[63] ArrayList 에서 쓰이는 Stack , Queue구현하기 Static 에서 push() , pop() 구현하기

꾸준히개발하자 2020. 7. 20. 13:45

Stack Queue

Stack ArrayList 로 많이 이용한다.

Last in First out : 맨 마지막에 추가된 요소가 먼저 꺼내지는 자료 구조

이미 구현된 클래스가 제공된다.

ArrayList LinkedList 로 구현 할수 있다.

( 게임에서 무르기 , 최근 자료 가져오기 ) 등에 구현된다.

 

Queue 구현하기

First in First out : 먼저 저장된 자료가 먼저 꺼내지는 자료구조

선착순 , 대기열 등을 구현 할 때 가장 많이 사용되는 자료구조 이다.

ArrayList LinkedList로 구현 할수 있다.

맨 앞에서 빼고 뒤에서 추가된다

 

 

 

 

package collection;
// 스택 구조 ArrayList 로 구현하기 

import java.util.ArrayList;

class MyStack {
	
	private ArrayList<String> arrayStack = new ArrayList<String>();
	public void push(String data) { // 데이터를 집어 넣는다. 
		arrayStack.add(data);
	}
	public String pop() { // 맨 마지막껄 빼내야 하니까 size를 알아와서  
		int len = arrayStack.size();
		if(len == 0) { // 비어있으면 
			System.out.println("스택이 비었습니다. ");
			return null; // 없으면 null을 리턴해준다
		}
    	return arrayStack.remove(len-1); //자료가있는 size 에서 받아온 len - 1을 하면 마지막것이 된다. 
    									// 큐에서는 deque는 remove(0); 맨앞에 0번째 인덱스를 꺼낸다. 
	}
}
public class StackTest {
	
	public static void main(String[] args) {
		MyStack stack = new MyStack();
		stack.push("A");
		stack.push("B");
		stack.push("C");
		
		System.out.println(stack.pop());
		System.out.println(stack.pop());
		System.out.println(stack.pop());
		System.out.println(stack.pop());
		
	}
}

push() 메소드에서는 add로 요소를 추가시킨다.

 

뺴낼때는 pop()을 쓰는데    size 의 크기만큼 받아온 변수 에서  -1 를 해서 마지막 값을 빼낸다. 

즉  마지막에 넣은값을 먼저 빼내는게 stack 방식이다.