List结构的集合基础(三)Vector类

前提:

引入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


欢迎各位在评论区留言讨论~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值