java中的Stack类
来源:互联网 发布:生态环境网络建设方案 编辑:程序博客网 时间:2024/06/01 10:39
Stack是java中对栈这中数据结构的定义。以栈的形式进行数据的存储,栈的特点是先进后出,它的内部实现也是通过动态数组来实现的。
Stack由于是继承自Vector,所以他是线程安全的操作。
可以阅读一下他的源码【将部分英文进行了翻译,由于英语水平,可能并不精确】:
/* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;/** * 栈代表了后进先出 * 栈,他继承了Vector,通过提供了五种方法,使得Vector可以被当做栈对待。 * 他提供了push()入栈、pop()出栈操作 还有peek()操作【查看堆栈顶部的对象,但不从堆栈中移除它。】 * 还有empty()操作,查看栈是否为空。还有search()方法,查看元素距离栈顶的位置。 * 当栈被第一次创建时,栈中为空。 * 更多完整的操作由Deque接口和它的实现类提供,使用Deque优先于Stack使用 * 例如:Deque<Integer> stack = new ArrayDeque<Integer>();}</pre> * * @author Jonathan Payne * @since JDK1.0 */publicclass Stack<E> extends Vector<E> { /** * 创建一个空栈 */ public Stack() { } /** * 入栈操作 */ public E push(E item) { addElement(item); return item; } /** * 出栈操作 */ public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj; } /** * 查看堆栈顶部的对象,但不从堆栈中移除它 */ public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1); } /** * 测试堆栈是否为空. */ public boolean empty() { return size() == 0; } /** * 返回对象在堆栈中的位置,以 1 为基数 */ public synchronized int search(Object o) { int i = lastIndexOf(o); if (i >= 0) { return size() - i; } return -1; } /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = 1224463164541339165L;}使用Stack实现的案例包括:对符号串匹配的判断【参看我的另一篇博客】
这里可以知道,Stack的使用现在是不被推荐的,在使用栈的时候优先使用Deque和ArrayDeque.
0 0
- 《java中的 Stack类》
- java中的Stack类
- 小心Java中的Stack类
- java中的STACK
- java中的Stack
- Java中的栈Stack
- java中的Stack使用
- java中的stack
- Java中的Stack
- java中的Heap 和 Stack
- Java中的Heap和Stack
- Java中的Heap和Stack
- Java中的Heap和Stack
- java中的stack和heap
- Java中的Heap和Stack
- Java中的Heap和Stack
- Java中的stack和heap
- Java中的Heap和Stack
- 瀑布流waterfall.js插件,php+ajax动态读取数据示例
- Valid Number
- java中json解析使用
- nginx+uwsgi+django部署
- opencv学习实现简单的图像离散傅里叶变换
- java中的Stack类
- Android application 和 activity 标签详解
- Java LinkedList工作原理及实现
- jquery动态添加组件监听事件
- 认识HTML
- Linux 下 Qt Creator 的安装使用
- SPRING MVC 的 配置 包括 包扫描 视图解析器 文件上传解析器 拦截器等
- studio集成环信EaseUI
- Cannot register service: RPC: Unable to receive; errno = Connection refused