Java 예제 - Stack Class 에 대해 설명해 보겠습니다.
Stack 의 구조.
위의 이미지에서 보시는거와 같이
"Stack(스택)" 은 요스를 데이터 구조의 한쪽 단에서만 저장/접근 할수 있는 컬렉션 입니다.
LIFO ( Last - In - First - Out ) 의 구조로 많이 알려져 있고 마치 한쪽 구멍만 뚫려 있는 통과 같은 구조의 컬렉션 입니다.
즉. 요소를 저장하고 저장하면 차례대로 밑으로 내려가고 접근할때는 제일 나중에 저장한 요소부터 깨내올수 있는 겁니다 ^^
Stack(스택) 클래스를 생성하게 위해선 다음과 같이 new 연산자를 이용하여 Stack 클래스의 생성자를 호출 하면 됩니다.
Stack myStack = new Stack();
Stack(스택) 의 접근 메서드 에서 가장 중요한 메서드는 바로 "push" 와 "pop" 메서드 입니다.
메서드 |
설명 |
pop() |
Stack(스택)의 맨 위의 객체를 제거하고 그 객체를 반환한다. |
push(item) |
Stack(스택) 맨 위에 객채를 추가. |
peek() |
Stack(스택) 맨 위에 있는 객체를 반환함. 이때 객체를 스택에서 제거하지 않는다. |
Boolean empty() |
현재 스택이 비어있는지를 확인함. |
빨간색으로 표시된 메서드가 제일 중요한 것이니 기억해두록 !! 포인트 입니다 !!
자 그럼 예제로 한번 알아보도록 하겠습니당.
import java.util.*;
public class stack {
public static void main(String[] args)
{
Stack myStack = new Stack();
String str1 = "1 - 머루";
String str2 = "2 - 별머루";
String str3 = "3 - 산머루";
String str4 = "4 - 달머루";
myStack.push(str1); myStack.push(str2);
myStack.push(str3);
myStack.push(str4);
while(!myStack.isEmpty()) {
String val = (String)myStack.pop();
System.out.println("값은 " + val);
}
}
}
일일이 타이핑 하기 귀찮으신분은 ??
요골 받아서 해보시면 되구요 ^^ 주석도 대충 달아놨습니다 !!
실행화면입니당 !!
위의 이미에서 보시는 바와 같이 결과 값이 "4 - 3 - 2 - 1" 순으로 나온걸 볼수 있습니다.
이것이 Stack(스택) 클래스의 가장 큰 특징이라고 할 수 있어요 !!
넣는 순서대로 나오는게 아니고 마지막으로 넣은 순서대로 나온다는점!!
이것만 기억하면 됩니다.
원본 및 출처 - 클릭하세요 JAVA 2 JDK 5.0 (대림출판사)