ArrayStrack 클래스 생성
1. 사이즈 입력받아 배열로 생성
2. 공간이 비어있나? -> return boolean
3. 공간이 꽉차있나? -> return boolean
4. 입력 (매개변수 : 입력받을item)
4-1. 공간이 가득찼나?
4-2. 빈공간? -> top++; stackArray[top]에 입력
5. 삭제 item = peek()// 최근에 추가된(Top) 데이터 조회, top--; return item;
6. 조회
6-1. 비어있나 ? isEmpty , return null;
6-2. return stackArray[top]
public Element push(Element item); // 데이터 추가
public Element pop(); // 최근에 추가된(Top) 데이터 삭제
public Element peek(); // 최근에 추가된(Top) 데이터 조회
public boolean empty(); // stack의 값이 비었는지 확인, 비었으면 true, 아니면 false
public int seach(Object o); // 인자값으로 받은 데이터의 위치 반환
ArrayStack 클래스
public class ArrayStack {
private int top;
private int maxSize;
private Object stackArray[];
//인덱스에 들어가는 변수 형이 String, Integer 상관없이 다 될 수 있게 Object로 설정함
public ArrayStack(int maxSize) {
this.maxSize = maxSize;//밖에서 입력한 size를 계속 사용하겠다 선언
stackArray = new Object[maxSize];
this.top = -1;
}
//stack 공간이 비어있는지 확인
public boolean isEmpty() {
return (this.top == -1);//true
}
//공간이 꽉 찼는지 확인
public boolean full() {
return (this.top == maxSize -1);//true
}
//insert
public void push(Object item) {
if (full()) {
System.out.println("스택 공간이 가득차 있습니다");
return;
}
top++;
stackArray[top] = item;
}
//delete
public Object pop() {//스택은 무조건 맨 위에것을 뺌 (pop라고 함)
//리턴값이 없어도 되나 대부분 Object로 반환해줌 -> 확인하라고
Object item = peek();
top--;
return item;
}
public Object peek() {
if (isEmpty()) {
System.out.println("스택 공간이 비어있습니다");
return null;
}
return stackArray[top];//ArrayList의 size()-1과 동일
}
}
main
public class mainClass {
public static void main(String[] args) {
/*
Stack : First In Last Out
실린더에 공을 넣고 빼는 경우
in -> Push
*/
ArrayStack stack = new ArrayStack(10);
String str = "AAA";
stack.push(str);
String peekStr = (String) stack.peek();//Object니까 String으로 캐스트 변환 함
System.out.println("top Object = "+ peekStr);
//->top Object = AAA
str = "BBB";
stack.push(str);
peekStr = (String) stack.peek();//Object니까 String으로 캐스트 변환 함
System.out.println("top Object = "+ peekStr);
//->top Object = BBB
String popStr = (String) stack.pop();
System.out.println("pop Object = "+popStr);
//->pop Object = BBB //B가 빠짐
peekStr = (String) stack.peek();//Object니까 String으로 캐스트 변환 함
System.out.println("top Object = "+ peekStr);
//->top Object = AAA //B가 빠져서 A만남음
Integer in = 123;
stack.push(in);
int topInt = (Integer)stack.peek();
System.out.println("topInt:"+topInt);
//->topInt:123//top이 123이 됨
}
}
'JAVA > 쓸만한 코드' 카테고리의 다른 글
싱글톤//야구 멤버 (0) | 2020.06.10 |
---|---|
Singleton//싱글톤//기본 코드 (0) | 2020.06.10 |
Map//Baseball 야구멤버 (0) | 2020.06.09 |
HashMap 코드 (0) | 2020.06.09 |
DTO 기본형 (0) | 2020.06.04 |