자바과정/Java
Java 실습(스택 : 제네릭) - 10일차
Parkej
2021. 2. 18. 19:23
import static java.lang.System.out;
import java.util.Scanner;
class pullStack<T>{
private T[] s;
private int cnt;
@SuppressWarnings("unchecked")
public pullStack() {
cnt = 0;
s = (T[]) new Object[5]; // 값을 받아올때 아예 오브젝트 형태로 받아오게 함.
// s = new S[]; 로 하면 배열을 만들 때 구성 요소 유형을 알지 못하기때문에 만들지 못했다.
}
public void push(T n) {
s[cnt++] = n;
}
public T pop() {
return s[--cnt];
}
public void print() {
for(T a:s) {
out.println(a);
}
}
public boolean sizeEmpty() {
return cnt == 0;
}
public boolean sizeFull() {
return cnt == 5;
}
}
public class MyStack {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
pullStack<Integer> stack = new pullStack<>();
while(true) {
System.out.print("1. push 2. pop 3. break : ");
int a = sc.nextInt();
if(a==1) { // push
if(stack.sizeFull()) {
System.out.println("더 이상 push 할 수 없습니다.");
}
else {
System.out.print("push 값 입력 : ");
stack.push(sc.nextInt());
}
}
else if(a==2) {
if(stack.sizeEmpty()) {
System.out.println("더 이상 pop 할 수 없습니다.");
}else {
System.out.print("pop 값 : ");
System.out.println(stack.pop());
}
}
else {
break;
}
}
}
}
반응형