stack源码和vector源码

package com.liuyuan.test03;

import java.util.Stack;

/*
 * Stack:栈   源码分析
 * 
 * (1)peek
 * 返回size-1位置的元素
 * (2)pop
 * ①先peek()返回栈顶元素
 * ②删除size-1位置的元素
 * (3)push:等价于add
 * 把元素添加到[size++]位置
 */
public class TestStack {
	public static void main(String[] args) {
		Stack s  = new Stack();
		s.push(1);
		System.out.println(s);
		s.peek();
		System.out.println(s);
		s.pop();
		System.out.println(s);
	}
}
package com.liuyuan.test03;

import java.util.Vector;

import org.junit.Test;

/*
 * Vector源码跟踪:
 * (1)new Vector():初始化长度为10的数组,默认增量是0
 * (2)add(E e):
 * 默认扩容为原来的2倍
 * 如果你手动指定了capacityIncrement的值,那么可以按照你指定增量进行扩容。
 * (3)add(index,e):
 * ①考虑扩容
 * ②移动元素
 * ③添加元素
 * ④元素个数增加
 * (4)remove(index):
 * ①计算要移动元素的个数
 * ②如果需要移动,调用System.arraycopy方法进行移动
 * ③elementData[--elementCount] = null;
 * (5)remove(Object obj)
 * ①查找obj的下标
 * ②如果不是-1就调用remove(index)进行删除
 * (6)indexOf(Object obj)
 * 对obj分情况讨论:(1)是null(2)不是null
 */
public class TestVector {
	@Test
	public void test1(){
		Vector v = new Vector();
		
		v.add("1");
		v.add(0, "2");//[0]
		
		v.remove(1);
		
		v.remove("1");
		
		int index = v.indexOf("1");
	}
}

 

转载于:https://my.oschina.net/architectliuyuanyuan/blog/3089368

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值