前提:
引入java.util包
简介:
Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。
Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。
Vector 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。
和ArrayList不同,Vector中的操作是线程安全的。
Vector的用处是比较多的。
语法结构:
创建VectorList类:
Vector <类型> 集合名=new Vector <>();
集合元素的加入:
集合名.add(对象名); //顺序添加
集合的遍历(举例),用于改和查:
for(int i=0;i<list.size();i++)
{
Clerk temp=(Clerk)list.get(i);
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
集合元素的删除:
list.remove(int index); //按下表删除
list.remove(Object o); //按对象删除
代码实现:
import java.util.*; //导包
public class Test1 {
public static void main(String[] args)
{
Vector <Clerk> list=new Vector <>(); //建立Vector集合类
Clerk clerk1=new Clerk("周卫国",32,5000); //创建三个对象
Clerk clerk2=new Clerk("方天翼",28,8000);
Clerk clerk3=new Clerk("张小凡",20,7000);
list.add(clerk1); //把对象加入到集合中
list.add(clerk2);
list.addElement(clerk3);
for(int i=0;i<list.size();i++) //遍历集合
{
Clerk temp=(Clerk)list.get(i); //用temp存储i下表的对象
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
System.out.println();
list.removeElementAt(1); //移除元素
for(int i=0;i<list.size();i++) //遍历
{
Clerk temp=list.get(i);
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
System.out.println();
for(int i=0;i<list.size();i++) //遍历
{
Clerk temp=list.get(i); //找到名字是周卫国的人
if(temp.getName().equals("周卫国")) //修改他的薪资
temp.setSalary(10000);
}
for(int i=0;i<list.size();i++) //遍历输出信息
{
Clerk temp=list.get(i);
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
}
}
class Clerk //创建员工类
{
private String name;
private int age;
private double salary;
Clerk(String name,int age,double salary)
{
this.name=name;
this.age=age;
this.salary=salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
Vector 与 ArrayList 的区别
Vector 和 ArrayList 都是 list 的动态数组实现,他们都继承于 AbstractList,实现了都同时实现增删查改操作。但 Vector 它是线程安全,而 ArrayList 是线程不安全的,Vector 每个对集合的方法操作都需要先申请集合的对象锁,这样可以保证在同一时刻只有一个线程能操作集合,若当前锁被占用,申请不了锁,则线程只能处于阻塞状态,等待资源调度器的唤醒。也正由于 Vector 是线程同步,因此并发的性能比较低下。
原文链接:https://blog.csdn.net/leewccc/article/details/60142726
欢迎各位在评论区留言讨论~~