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 방식이다.