sheng的学习笔记-Vector源码分析

概述

Vector底层也是数组,跟ArrayList很像(先看下ArrayList,再看Vector会很轻松),ArrayList可参考下文,并且由于效率低,已经被淘汰了,大概瞅瞅得了

sheng的学习笔记-ArrayList源码分析_coldstarry的博客-CSDN博客

差异的:

Vector是线程安全的,不过效率低,在add等位置加了synchronized

ArrayList是线程不安全的,效率高

底层是数组

 

初始化

默认申请10个元素的数组

 新增元素

add中有synchronized(加锁),多线程有用,但会速度慢

另外如果不设置capacityIncrement,默认每次扩容两倍(ArrayList是1.5倍),但可以自己设置扩容的步长(初始化的时候作为参数可以传进去)

 

指定位置上新增数据,做内存挪移,把指定位置的元素往后挪,空出个位置。然后将新的元素插入到空位置上

 删除元素

找到指定的位置,计算剩余的需要挪的位置,如果删除最后一个元素比较快,如果删除中间的元素要做内存挪移,然后把最后一个元素置空

 

查找元素

根据对象查找

跟ArrayList一样的配方,只是加了个锁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值