数据结构-03 Stack源码解析
2017-02-13 18:15
337 查看
本文根据Android API 21
构造方法
Stack()
构造一个默认数量的Stack.
判断当前Stack是否为空
empty()
返回栈顶的与素,并不将此元素移除栈
peek()
返回栈顶的与素,并将此元素移除栈
pop()
把指定的object对象置为栈顶
push()
总结:
Stack支持并发操作
Stack内部通过数组来实现数据的操作
Stack数据的特点是先进先出。
构造方法
Stack()
public Stack() { }
构造一个默认数量的Stack.
判断当前Stack是否为空
empty()
public boolean empty() { return isEmpty(); }
返回栈顶的与素,并不将此元素移除栈
peek()
@SuppressWarnings("unchecked") public synchronized E peek() { try { return (E) elementData[elementCount - 1]; } catch (IndexOutOfBoundsException e) { throw new EmptyStackException(); } }
返回栈顶的与素,并将此元素移除栈
pop()
@SuppressWarnings("unchecked") public synchronized E pop() { if (elementCount == 0) { throw new EmptyStackException(); } final int index = --elementCount; final E obj = (E) elementData[index]; elementData[index] = null; modCount++; return obj; }
把指定的object对象置为栈顶
push()
public synchronized int search(Object o) { final Object[] dumpArray = elementData; final int size = elementCount; if (o != null) { for (int i = size - 1; i >= 0; i--) { if (o.equals(dumpArray[i])) { return size - i; } } } else { for (int i = size - 1; i >= 0; i--) { if (dumpArray[i] == null) { return size - i; } } } return -1; }
总结:
Stack支持并发操作
Stack内部通过数组来实现数据的操作
Stack数据的特点是先进先出。
相关文章推荐
- proc源码解析(二)--proc数据结构
- STL源码结构解析之Stack,Queue,Priority_Queue
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- 【转】Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- Redis 3.0 源码解析---底层数据结构分析(2)
- 基本数据结构解析之Stack & Queue
- Java 集合系列 06 Stack详细介绍(源码解析)和使用示例
- Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例
- Redis 3.0 源码解析---底层数据结构分析(3)
- android binder机制及其源码解析 之第二节重要函数讲解之常用数据结构(一)
- STL源码解析-04序列容器-04queue&stack
- STL源码解析-04序列容器-03deque
- redis源码解析之dict数据结构
- [STL]源码解析:stack
- proc源码解析-proc文件系统的内容--proc数据结构--proc初始化
- STL源码解析-02配置器-03自定义配置器
- 数据结构习作之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java) (技术含量少许)
- Python2 基本数据结构源码解析
- 【源码】Vector、Stack源码解析
- 深入netty源码解析之一数据结构