欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Java 中的 堆栈(Stack)

Java 中的 堆栈(Stack)

2025/2/24 22:04:09 来源:https://blog.csdn.net/qq_26818839/article/details/143464044  浏览:    关键词:Java 中的 堆栈(Stack)

在刷算法题中,常用的除了队列(Java 中的 队列(Queue)与双端队列(Deque)-CSDN博客),还有堆栈,这次来学习一下堆栈(Stack)。

堆栈 (Stack)的一个特性即是后进先出 (LIFO),它继承了类 Vector,提供了常用的 push 和 pop 操作,以及一个用于查看堆栈上顶部项的方法、一个用于测试堆栈是否为空的方法,以及一个用于在堆栈中搜索项并发现它与顶部相距多远的方法。

方法如下

// [1, 2, 3, 2]
Stack<Integer> stack = new Stack<>(){{push(1);push(2);push(3);push(2);}};
方法描述示例

E push(E item)

将item加入栈,并返回item

stack.push(4)
// 返回值为 4 

//当前栈为 [1, 2, 3, 2, 4]

synchronized E pop()

删除此堆栈顶部的对象,并将该对象作为此函数的值返回。

如果此堆栈为空,则抛出异常-EmptyStackException

stack.pop()
// 返回值为 4

//当前栈为 [1, 2, 3, 2]

synchronized E peek()

查看此堆栈顶部的对象。

如果此堆栈为空,则抛出异常-EmptyStackException

stack.peek()

// 返回值为 2

//当前栈为 [1, 2, 3, 2]

 boolean empty()

判断此堆栈是否为空,是为true,否为false。

stack.empty()

// 返回值为 false

synchronized int search(Object o)

查询对象 o 所在位置,该位置为返回距最靠近堆栈顶部的匹配项的堆栈顶部的距离;堆栈上最上面的项被视为距离 1。

如果不存在则返回-1

// 当前栈为 [1, 2, 3, 2]

stack.search(2)// 返回值为1

stack.search(3)// 返回值为2

stack.search(1)// 返回值为4

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词