java 實現一個棧
來源:互聯網
上載者:User
package zhangtingting;public class StackTest {private Object[] stack;//元素個數;private int size;//預設長度為10;public StackTest(){this(10);}//也可以自己設定長度,即容量;public StackTest(int len){stack = new Object[len];}//返回元素個數;public int size(){return size;}//返回數組長度,即容量;public int capacity(){return stack.length;}//實現動態數組;public void ensureCapacity(){if(size() == capacity()){Object[] newStack = new Object[size() * 3 / 2 + 1];System.arraycopy(stack, 0, newStack, 0, size());stack = newStack;}}//入棧;public void push(Object o){size++;ensureCapacity();stack[size - 1] = o;}//判空;public boolean isEmpty(){return size == 0;}//出棧;public Object pop(){//首先要判空;if(isEmpty()){throw new ArrayIndexOutOfBoundsException("不可為空");}Object o = stack[--size];stack[size] = null;return o;}public static void main(String[] args) {StackTest stack = new StackTest(3);String[] data = new String[] { "a", "b", "c" };for (int i = 0; i < data.length; i++) {stack.push(data[i]);System.out.println(data[i] + "");}System.out.println("***********");while (!stack.isEmpty()) {System.out.println(stack.pop() + "");} }}