1 import java.util.Arrays; 2 import java.util.EmptyStackException; 3 4 public class Stack { 5 public static void main(String[] args) { 6 7 Stack s = new Stack(); 8 int count = 0; 9 while (true) { 10 System.out.println(count++ +"elements:"+s.elements.length); 11 s.push(new Object()); 12 s.push(new Object()); 13 s.pop(); 14 } 15 } 16 17 private Object[] elements; 18 private int size = 0; 19 private static final int DEFAULT_INITIAL_CAPACITY = 16; 20 21 // 声明Object数据并且初始化. 22 public Stack() { 23 elements = new Object[DEFAULT_INITIAL_CAPACITY]; 24 } 25 26 // 压入栈数据 27 public void push(Object e) { 28 ensureCapacity(); 29 elements[size++] = e; 30 31 } 32 33 // 弹出栈数据 34 public Object pop() { 35 if (size == 0) 36 throw new EmptyStackException(); 37 return elements[--size]; 38 } 39 40 private void ensureCapacity() { 41 if (elements.length == size) { 42 if (elements.length == size) { 43 elements = Arrays.copyOf(elements, 2 * size + 1); 44 } 45 } 46 } 47 48 }
1:初始化栈
2:建立push 方法:功能:压入栈数据;
3:建立pop方法:功能 弹出栈里面数据。
在压入栈方法中,加入如果:栈数据==原来满的话 扩大一倍!
压入 1 2 3 4 5 6 7 8 弹出 8 7 6 5 4 3 2 1 先进后出,后进先出。