java 栈的分析
来源:互联网 发布:淘宝客服那那里应聘 编辑:程序博客网 时间:2024/06/08 11:57
1. 系统提供的Stack 的方法如下:
2. 集成关系如下:
由上图可见,Stack 的底层是数组,因为继承了Vector ,AbstractList.
3. Stack的常用方法
进栈:
//Stack 中方法:public E push(E item) { addElement(item); return item; }// vector 中方法public synchronized void addElement(E obj) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = obj; }
出栈:
// Stack 中方法public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj; }// vector 中方法public synchronized void removeElementAt(int index) { modCount++; if (index >= elementCount) { throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount); } else if (index < 0) { throw new ArrayIndexOutOfBoundsException(index); } int j = elementCount - index - 1; if (j > 0) { System.arraycopy(elementData, index + 1, elementData, index, j); } elementCount--; elementData[elementCount] = null; /* to let gc do its work */ }
peek 方法: 取出数值,但不弹出数据
public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1); }
阅读全文
0 0
- java 栈的分析
- Java中堆和栈的分析
- JAVA堆与栈的分析
- java中栈和堆的分析
- java中堆和栈的分析
- Java中堆和栈的分析
- Java中堆和栈的分析
- Java的内存分析
- Java基础知识的分析
- java的内存分析
- java运行机制的分析
- Java的堆栈分析
- Java环境变量的分析
- java的内存分析
- Java流的分析
- Java 的 BufferReader 分析
- Java的内存分析
- Java的内存分析
- setTimeout配合requestAnimationFrame
- Splunk 网络App和Add-on整理总结
- CanvasInput, HTML5 Canvas 文本输入
- Android项目和依赖的lib SDK版本冲突合并
- 单例模式
- java 栈的分析
- MyBatis之Mapper.xml获取数据库类型
- gif-movie-view, 用于显示GIF动画的Android视图小部件
- 【Spring Cloud】三、Eureka Consumer 服务注册中心消费者调用服务
- 11g dg 从库sql性能问题处理吐槽
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 关于web.xml里面使用classpath:找不到文件
- java poi实现execl三级联动
- java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(