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 방식이다.
'JAVA Programming' 카테고리의 다른 글
[66] TreeSet 자료구조로 구현하기 (오름차순,내림차순,중복X) Comparable 상속받을때 (0) | 2020.07.20 |
---|---|
[65] Set 인터페이스 (Iterator 순회 , 중복x, 순서대로x) (0) | 2020.07.20 |
[61] 컬렉션 프레임 워크 란? (0) | 2020.07.20 |
[59] 제네릭 프로그래밍 (0) | 2020.07.20 |
[58] StringBuilder , StringBuffer 기본적인 char[] 배열을 멤버변수 클래스 , Wrapper 클래스 정의 (0) | 2020.07.20 |