03_Vector和Stack
一. 基本原理和优缺点
Stack继承了Vector,Vector底层还是一个List,也就是基于数组来实现的,所以ArrayList有的优点,比如获取元素的速度快,随机读,它都有,与此相对的,ArrayList的缺点,比如从中间插入一个元素,从中间删除一个元素,Stack也存在。
但是呢,Stack使用最多的方法就是push和pop,换句话说,Stack的作者并非希望我们把使用ArrayList的那一套,直接放到Stack上做。
如果严格按照push和pop来执行,就可以避免中间操作元素时,产生移动元素的后果了。当然了,频繁向Stack push元素,仍然可能导致扩容。
栈和队列(LinkedList)的实现有所不同,栈是"后进先出",而队列是"尾进头出"。
二. 源码分析
2.1 push
Stack底层与ArrayList非常相似,存储数据的容器是数组。
public E push(E item) {
addElement(item);
retu