java堆栈数组_Java小知识:使用Java中的数组实现堆栈

这篇文章展示了如何通过使用数组来实现堆栈。

堆栈的要求是:1)堆栈具有一个接受数字以初始化其大小的构造函数,2)堆栈可以容纳任何类型的元素,3)堆栈具有push()和pop()方法。

9ce355f97214c0ff0b43fbeee3f08ff6.png

一个简单的堆栈实现

publicclassStack {

privateE[] arr = null;

privateintCAP;

privateinttop = -1;

privateintsize = 0;

@SuppressWarnings("unchecked")

publicStack(int cap) {

this.CAP = cap;

this.arr = (E[]) newObject[cap];

}

publicE pop() {

if(this.size == 0){

returnnull;

}

this.size--;

E result = this.arr[top];

this.arr[top] = null;//prevent memory leaking

this.top--;

returnresult;

}

publicbooleanpush(E e) {

if(isFull())

returnfalse;

this.size++;

this.arr[++top] = e;

returntrue;

}

publicbooleanisFull() {

if(this.size == this.CAP)

returnfalse;

returntrue;

}

publicString toString() {

if(this.size==0){

returnnull;

}

StringBuilder sb = newStringBuilder();

for(inti=0; i

sb.append(this.arr[i] + ", ");

}

sb.setLength(sb.length()-2);

returnsb.toString();

}

publicstaticvoidmain(String[] args) {

Stack stack = newStack(11);

stack.push("hello");

stack.push("world");

System.out.println(stack);

stack.pop();

System.out.println(stack);

stack.pop();

System.out.println(stack);

}}

输出:

hello, world

hello

null

此示例在“有效Java”中使用了两次。首先,堆栈示例用于说明内存泄漏。其次,该示例用于说明何时可以抑制未经检查的警告。

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

b8dd19ce8c4f54fb2732f6dfba70ee88.png

cf3f8275bb5c0d6f3d872a2d0939cd64.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值