java如何创建一个栈

2025-11-18 17:13:02

1、栈是Vector的一个子类,它实现了一个标准的后进先出的栈。堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。除了由Vector定义的所有方法,自己也定义了一些方法:

java如何创建一个栈

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() + "");

}

    }

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:171
  • 阅读量:165
  • 阅读量:75
  • 阅读量:108
  • 阅读量:137
  • 猜你喜欢