java如何创建一个栈
1、栈是Vector的一个子类,它实现了一个标准的后进先出的栈。堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。除了由Vector定义的所有方法,自己也定义了一些方法:
2、详细的代码可参寿伊趾杏考一下: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() + "");} }}