Java中关于Vector的基本使用

关于Vector集合的使用:

1、Vector也实现了List接口,和ArrayList用法基本相同。
这里我们对比着学习Vector。

2、Vector和ArrayList一样,底层也是一个Object类型的数组Object[]。

3、ArrayList的无参数构造默认数组容量是10,Vector的默认容量也是10。

4、Vector和ArrayList构建时一样,都可以指定容量的大小。
使用有参数的构造方法,传一个int型参数,指定容量。


5、当集合容量不够用时,Vector和ArrayList一样,都会实现自动扩容。(可以参考源代码)

ArrayList集合的自动扩容的新容量是原来的1.5倍。
Vector集合的自动扩容的新容量是原来的2倍。


6、Vector和ArrayList集合都实现了List接口,遍历方式都有3种:

  • 通过获取迭代器遍历
  • 通过下标完成遍历
  • 通过增强for循环,foreach遍历

7、ArrayList是非线程安全的,方法没有使用synchronized修饰符修饰。

而Vector是线程安全的,方法都用了synchronized修饰符修饰。

但Vector线程安全反而效率很低,没有ArrayList集合用的多。

Vector的基本测试代码跟ArrayList一样,参考ArrayList:ArrayList的使用


8、如何将非线程安全的List转成线程安全的List?

使用Collections.synchronizedList(list list)方法


测试代码:

import java.util.*;

public class Test08 {
    public static void main(String[] args) {
        // Vector的基本使用代码不再演示,参考Test06的ArrayList代码

        // 如何将一个非线程安全的ArrayList转换成线程安全的ArrayList
        List list = new ArrayList();  // 这是一个非线程安全的ArrayList

        // 调用Collections.synchronizedList(list<Object> list)方法
        Collections.synchronizedList(list);  // list已经是线程安全的了

        // 还没有学线程和多线程的情况下,这里就暂时不看效果了

    }
}

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值