栈:先进后出
底层用数组实现
private Object[] data;
//构造方法初始化数组长度
public Stack(int cap){
data = new Object[cap];
}
弹栈
public T pop(){
return (T)data[--size];
}
压栈
public void push(T a){
data[size++] = a;
}
判断是否满了
public boolean isFull(){
return size == data.length;
}
判断是否为空
public boolean isEmpty(){
return size==0;
}
重写toString方法
public String toString(){
return Arrays.toString(data);
}
实现
public class StackDemo {
public static void main(String[] args) {
Stack<Integer> s = new Stack<>(10);
int i = 1;
while(!s.isFull()){
s.push(i++);
}
System.out.println(s);
while(!s.isEmpty()){
int a = s.pop();
System.out.print(a + " ");
}
System.out.println(s);
}
}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
10 9 8 7 6 5 4 3 2 1 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]