java两个集合实现一个栈,Java集合框架分析(5)——List集合之自己实现一个数组栈...

花了半个小时复习了下栈,自己用数组简单实现了下,也为之后要分析到的Vector和Stack做个准备,只是个简单的数组栈,还没有像Stack里面那么优化,代码如下:

class Stack {

// 定义一个数组来实现栈

private Object[] stack;

// 栈内的元素个数,也可以当做栈顶元素的游标来用

private int size = 0;

// 初始化一个容量来创建栈

private int capacityIncrement = 0;

// 指定一个初始容量来创建stack

public Stack(int capacityIncrement) {

stack = new Object[capacityIncrement];

}

// 向栈顶压入一个元素

public Object push(Object obj) {

return stack[size++] = obj;

}

// 返回栈顶元素,不执行删除操作

public Object peek() {

if (size == 0) {

throw new RuntimeException("空栈异常");

}

// 栈的容量和下标总是差1,所以要先自减操作

return stack[--size];

}

// 返回栈顶元素并删除

public Object pop() {

Object obj;

obj = peek();

stack[size] = null;

return obj;

}

// 返回栈的长度

public int capacity() {

return stack.length;

}

//返回栈内元素个数

public int size(){

return size;

}

// 判断栈内是否为空

public boolean isEmpty() {

return size()==0;

}

// 输出栈内元素

public void iterator() {

for (int i = 0; i < stack.length; i++) {

System.out.println(stack[i]);

}

}

}

public class MyStack {

public static void main(String[] args) {

Stack stack = new Stack(10);

// 向栈顶压入10个元素

for (int i = 0; i < 10; i++) {

stack.push("元素" + i);

System.out.println("元素" + i + "入栈");

}

//输出栈内元素

stack.iterator();

// 依次弹出10个元素

for (int i = 0; i < 10; i++) {

System.out.println(stack.pop() + "出栈");

}

stack.iterator();

stack.isEmpty();

}

}

下面是实例的结果:

元素0入栈

元素1入栈

元素2入栈

元素3入栈

元素4入栈

元素5入栈

元素6入栈

元素7入栈

元素8入栈

元素9入栈

元素0

元素1

元素2

元素3

元素4

元素5

元素6

元素7

元素8

元素9

元素9出栈

元素8出栈

元素7出栈

元素6出栈

元素5出栈

元素4出栈

元素3出栈

元素2出栈

元素1出栈

元素0出栈

null

null

null

null

null

null

null

null

null

null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值