Java集合之Vector

首先上图:

Vector 类实现可增长的对象数组,同ArrayList一样都是采用数组存储数据。Vector通过维护 capacity 和 capacityIncrement 来优化存储管理,capacity 值始终至少应与向量的size相等,当往Vector中添加的元素个数要大于capacity时,Vector将按capacityIncrement的大小增加存储块。与ArrayList不同的是,Vector由于使用了synchronized方法,所以线程安全,性能上也比ArrayList差。下面是Vector的一些常用方法:

package practice;
import java.util.Vector;
import java.util.Iterator;
import java.util.ListIterator;
/**
 * Vector和ArrayList同样都采用了数组存储数据
 * 所以查询元素快,插入删除慢
 * 两者不同的时Vector采用同步方法,线程安全,但是效率
 * 比ArrayList要差
 * @author tiny_spot
 */
public class VectorPractice {
	public static void main(String args[]) {
		Vector v = new Vector();//构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。
		System.out.println("vector的容量为:"+v.capacity());
		v.add("abcdef");
		v.add(25);
		v.add(0, 3.5f);
		for(int i = 0 ; i < v.size(); i++)//for循环遍历
			System.out.print(v.get(i)+" ");
		System.out.println();
		for(int i = 0 ; i < 10; i++)
			v.add(i);
		for(Object o : v)//foreach循环遍历
			System.out.print(o+" ");
		System.out.println("\nvector的容量为:"+v.capacity());//20,说明超过之前的容量时会自动增加
		v.remove(4);//删除指定索引处的元素
		v.remove((Object)4);//移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。
		Iterator it = v.iterator();
		while(it.hasNext())//iterator迭代
			System.out.print(it.next()+" ");
		System.out.println();
		v.removeElementAt(0);//如果怕remove()方法产生歧义,可以使用此函数删除指定位置的元素
		v.removeElement(0);//从此向量中该元素的第一个(索引最小的)匹配项。避免remove方法产生歧义
		ListIterator lit = v.listIterator(0);
		while(lit.hasNext())//ListIterator迭代
			System.out.print(lit.next()+" ");
		System.out.println();
		System.out.println("25第一次出现的索引:"+v.indexOf((Object)25));//若没有该元素,返回-1
		v.set(5, (Object)25);//用指定的元素替换此向量中指定位置处的元素。
		System.out.println("25最后一次出现的索引:"+v.lastIndexOf((Object)25));
		for(Object o : v)
			System.out.print(o+" ");
		System.out.println();
		lit = v.listIterator(3);
		System.out.print("从第3号元素开始往前遍历:");
		while(lit.hasPrevious())
			System.out.print(lit.previous()+" ");
		System.out.println();
		lit = v.listIterator(3);
		System.out.print("从第3号元素开始往后遍历:");
		while(lit.hasNext())
			System.out.print(lit.next()+" ");
	}
}

运行结果:

vector的容量为:10
3.5 abcdef 25 
3.5 abcdef 25 0 1 2 3 4 5 6 7 8 9 
vector的容量为:20
3.5 abcdef 25 0 2 3 5 6 7 8 9 
abcdef 25 2 3 5 6 7 8 9 
25第一次出现的索引:1
25最后一次出现的索引:5
abcdef 25 2 3 5 25 7 8 9 
从第3号元素开始往前遍历:2 25 abcdef 
从第3号元素开始往后遍历:3 5 25 7 8 9 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值