您的位置:首页 > 其它

Vector的用法

2011-02-11 15:58 183 查看
Vector类实现了AbstractList。Vector相当于动态数组,Java中我们定义数组之后,元素的个数不能发生变化,如果元素个数未知就不能使用数组,这时候就可以使用Vector。Vector对象可以存放各种对象。
Vector是一个动态数组,所以在执行过程中,会随着元素的变化调整自身的容量。
提供了4种构造函数:
public Vector(); 默认的构造函数,用于创建一个空的数组。
public Vector(Collection c); 根据指定的集合创建数组。
public Vector(int initialCapatity); 指定数组的初始大小。
public Vector(int initialCapacity,int increment); 指定数组的初始大小,并指定每次增加的容量。
方法比较多,下面通过一个实例,该实例基本包含了主要的方法:
package com.li.collection;

import java.util.Vector;
import java.util.ListIterator;

public class VectorTest {
public static void main(String[] args) {
VectorTest vectortest = new VectorTest();
vectortest.test();
}

public void test()
{
Vector v1 = new Vector();
//创建v1对象
v1.add("1a");
v1.addElement("1b");
//使用两种不同的方式添加元素

//下面的代码采用不同的方式显示对象信息,
System.out.println("-------------------使用不同的方式进行显示-----------");
System.out.println("show");
show(v1); //使用Vector提供的方法遍历
System.out.println("show1");
show2(v1); //使用跌代进行遍历
System.out.println("show2");
show3(v1); //转换成数组进行遍历

//创建v2并添加对象
Vector v2 = new Vector();
v2.add("2a");
v2.add("2b");

//创建v并添加对象
Vector v = new Vector();
v.addAll(v1); //添加一个集合
System.out.println("-------------------添加一个集合后-----------");
show(v); //显示

v.addAll(1,v2); //在指定的位置添加集合
System.out.println("-------------------在1位置添加一个集合-----------");
show(v);

v.add(3,"3a"); //在指定的位置添加元素
System.out.println("-------------------在3位置添加一个元素-----------");
show(v);

System.out.println("当前容量:"+v.capacity()+" 当前元素个数:"+v.size());

v.set(3,"4d"); //修改指定位置的元素
System.out.println("-------------------修改3位置为4d-----------");
show(v);

v.setElementAt("4e",3); //修改指定位置的元素
System.out.println("-------------------修改3位置为4e-----------");
show(v);

v.add("4e");
System.out.println("-------------------添加4e后-----------");
show(v);

int f1 = v.indexOf("4e"); //查找4e第一次出现的位置
int l1 = v.lastIndexOf("4e"); //查找4e最后一次出现的位置
int f2 = v.indexOf("4e",4); //从4开始4e第一次出现的位置
int l2 = v.lastIndexOf("4e",4); //4之前4e最后一次出现的位置
System.out.println("4e第一次出现的位置:"+f1+" 从4开始4e第一次出现的位置"
+f2+" 4e最后一次出现的位置:"
+l1+" 4之前4e最后一次出现的位置"+l2);

String temp = (String)v.firstElement();
System.out.println("第一个元素:"+temp);

temp = (String)v.lastElement();
System.out.println("最后一个元素:"+temp);

v.remove(2); //删除指定位置的元素
System.out.println("-------------------在2位置删除一个元素-----------");
show(v);

boolean bt = v.contains("2a"); //判断是否包含2a
System.out.println("是否包含2a:"+bt);

System.out.print("V1元素:");
show(v1);
bt = v.containsAll(v1); //判盘是否包含v1
System.out.println("是否包含v1:"+bt);

System.out.print("V2元素:");
show(v2);
bt = v.containsAll(v2); //判断是否包含v2
System.out.println("是否包含v2:"+bt);

v.remove("3a"); //删除某个特定的元素
System.out.println("-------------------删除元素3a-----------");
show(v);

v.removeElement("1b");
System.out.println("-------------------删除元素1b-----------");
show(v);

v.removeElementAt(0);
System.out.println("-------------------删除0位置元素-----------");
show(v);

bt = v.isEmpty();
System.out.println("是否为空:"+bt);

v.clear();
System.out.println("-------------------清空后-----------");
show(v);
bt = v.isEmpty();
System.out.println("是否为空:"+bt);
}
public void show(Vector v)
{
StringBuffer sb = new StringBuffer("elements:");
for(int i=0;i<v.size();i++) //通过获取每一个元素来遍历
{
if(i%2==0)
sb.append((String)v.elementAt(i)); //通过elementAt(i)获取元素
else
sb.append((String)v.get(i)); //通过get(i)获取元素
sb.append(" ");
}
System.out.println(sb.toString());
}
public void show2(Vector v)
{
StringBuffer sb = new StringBuffer("elements:");
//通过跌代进行遍历
ListIterator li = v.listIterator();
while(li.hasNext())
{
sb.append((String)(li.next()));
sb.append(" ");
}
System.out.println(sb.toString());
}
public void show3(Vector v)
{
StringBuffer sb = new StringBuffer("elements:");
//先转换成数组,然后对数组进行遍历
Object o[] = v.toArray();
for(int i=0;i<o.length;i++)
{
sb.append((String)o[i]);
sb.append(" ");
}
System.out.println(sb.toString());
}
}
运行的结果如下:
-------------------使用不同的方式进行显示-----------
show
elements:1a 1b
show1
elements:1a 1b
show2
elements:1a 1b
-------------------添加一个集合后-----------
elements:1a 1b
-------------------在1位置添加一个集合-----------
elements:1a 2a 2b 1b
-------------------在3位置添加一个元素-----------
elements:1a 2a 2b 3a 1b
当前容量:10 当前元素个数:5
-------------------修改3位置为4d-----------
elements:1a 2a 2b 4d 1b
-------------------修改3位置为4e-----------
elements:1a 2a 2b 4e 1b
-------------------添加4e后-----------
elements:1a 2a 2b 4e 1b 4e
4e第一次出现的位置:3 从4开始4e第一次出现的位置5 4e最后一次出现的位置:5 4之前4e最后一次出现的位置3
第一个元素:1a
最后一个元素:4e
-------------------在2位置删除一个元素-----------
elements:1a 2a 4e 1b 4e
是否包含2a:true
V1元素:elements:1a 1b
是否包含v1:true
V2元素:elements:2a 2b
是否包含v2:false
-------------------删除元素3a-----------
elements:1a 2a 4e 1b 4e
-------------------删除元素1b-----------
elements:1a 2a 4e 4e
-------------------删除0位置元素-----------
elements:2a 4e 4e
是否为空:false
-------------------清空后-----------
elements:
是否为空:true

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JavaEETeacher/archive/2007/03/19/1533732.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: