在学习栈的时候我在想一个问题:在push的时候栈是怎么确保容量始终符合我的需求?
直接对push进行crtl+ 鼠标左键:
只有一个add方法,再左键:
这个addElement方法的功能是:将指定的组件添加到该向量的末尾,使其大小增加1。 如果这个向量的大小大于它的容量,它的容量就会增加。
该方法在功能上与add(E)方法(它是List接口的一部分)相同。
参数: Obj ——要添加的组件
addElement方法具体实现有三行
1.modCount是什么?
官方的解释是:此列表被结构修改的次数。 结构修改是指改变列表的大小,或者以某种方式扰乱列表,从而导致正在进行的迭代可能产生不正确的结果。
2. ensureCapacityHelper()方法
如有必要,增加此向量的容量,以确保它至少可以容纳由最小容量参数指定的组件数量。
如果这个向量的当前容量小于minCapacity,那么它的容量将通过将保存在字段elementData中的内部数据数组替换为更大的数据数组来增加。 新数据数组的大小将是旧的size加上capacityIncrement