从源代码看ArrayList和Vector的真正区别

原文地址:http://www.java2000.net/p9750

今天正好看到了这个东西,一直都是看别人的资料,决定自己亲自看看源代码。JDK版本为 6.0_04 的

1 声明没有任何区别

public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable;

public class Vector<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable;

2 构造器方法,默认都是10个初始化容量。Vector带每次增加容量的参数
public ArrayList(int initialCapacity);

public Vector(int initialCapacity);
public Vector(int initialCapacity, int capacityIncrement);


3 add等方法,Vector是同步的方法
ArrayList
public boolean add(E e);

Vector
public synchronized boolean add(E e);

4 尺寸和长度,私有变量不同。
ArrayList.size;
Vector.elementCount;

5 其它方法
Vector 比ArrayList方法多,不过一部分是重复的
public synchronized void copyInto(Object[] anArray);
public synchronized void setSize(int newSize);
public synchronized int capacity();
public Enumeration<E> elements();
public synchronized E elementAt(int index);
public synchronized E firstElement();
public synchronized E lastElement();
public synchronized void setElementAt(E obj, int index) ;
public synchronized void removeElementAt(int index);
public synchronized void insertElementAt(E obj, int index);
public synchronized void addElement(E obj);
public synchronized boolean removeElement(Object obj);
public synchronized void removeAllElements();









<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
光谱数据预处理综合 除了化学信息,光谱还包含其他不相关或不需要的信息,如电噪声,基质背景,杂散光,散射效应等。在用化学计量学方法建立校准模型时,利用预处理方法消除光谱数据中的无关信息和噪声是非常必要的。 阅读详情

相关推荐

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 492

ArrayList和Vector的区别(源码分析比较)

ArrayList Vector 1、实现原理:采用动态对象数组实现,默认构造方法创建了一个空数组 1:实现原理:采用动态数组对象实现,默认构造方法创建了一个大小为10的对象数组 2、第一次添加元素,扩展容量为10,之后的扩充算法:原来数组大小+原来数组的一半 2、扩充的算法:当增量为0时,扩充为原来大小的2倍,当增量大于0时,扩充为原来大小+增量 3、不适合进行删除或插入...

u011419651的博客 7080

Js逆向抖音a_bogus --/* V 1.0.1.19-fix.01 */补环境

需要在addEventListener中补一个鼠标移动事件,不补这个环境,生成的值是假值,你拿去请求,响应200,但是没有数据,这个算是dy的最难发现的一个难点。dy这个,没有原形链检测,我只是习惯了这样补,对XMLHttpRequest进行重写,导出a_bogus.发现可以响应状态码200,而且可以获取数据,接着注释params中的a_bogus。在n.apply的下面插入上述代码,对a_bogus进行全局导出。如果没有,就多放几次断点,因为每个人的游览器不一样。必须触发至少一次鼠标事件,不触发不给过。

2302_76420666的博客 4205

从源码分析ArrayList和Vector区别

最近在看JDK源码,现在从源码角度分析下ArrayList和Vector区别 注:本文源码基于JDK1.6 1.构造器    先从构造器入手在适合不过    ArrayList有三个构造器: public ArrayList(int initialCapacity)//构造一个具有指定初始容量的空列表。  public ArrayList()//构造一个

S1328925105的博客 381

DeepSeek安装教程

两分钟讲述deepseek正确安装教程

weixin_45906703的博客 1666

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量。 辐射率是辐射度量学上表示一个区域平面上光线总量的物理量,它受到入射光线与平面法线间的夹角θ的余弦值cosθ的影响:当直接...

小龙虾的博客 1万+

Vector和ArrayList的区别

Vector和ArrayList两个集合类的本质没有太大的不同,都是实现了List接口,而且底层都是基于Java数据来存储集合元素的。 1、不同的在于序列化方面:ArrayList比Vector安全, 在ArrayList集合中: //采用elementData数组来存储集合元素 private transient Object[] elementData; 在Vector集中中: /

zdxiaxiaxia的博客 1885

PyMOL下载安装教程(附安装包)2025最新版(PyMOL 3.0.3)

本文详细介绍了Windows系统下PyMOL分子建模软件的安装教程。主要内容包括:提供安装包下载链接,强调需关闭杀毒软件;分步骤讲解管理员身份运行安装程序、接受协议、选择安装路径等安装流程;重点说明如何配置隐藏文件夹ProgramData中的许可证文件;最后提供基础使用技巧和常见问题解决方案。该教程适用于需要制作高质量分子结构图的科研人员和新手用户,帮助完成软件部署并顺利开展工作。

progalchemist的博客 3827

ArrayList和Vector的区别

Vector和ArrayList这两个集合类的本质并没有太大的不同,它们都实现了List接口,而且底层都是基于Java数组来存储集合元素。 在ArrayList集合类的源代码中可以看到如下一行。 //采用elementData数组来保存集合元素 private transient Object[] elementData; 在Vector集合类的源代码中也可看到类似的一行。 //采

itmyhome的专栏 3720

家庭弱电最实用的功能,网线面板如何接线

按照规范,我国宽带入户线按B接法,即568B标准,从后面看,从左到右:1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕,即和水晶头的接法一致。做水晶头的时候,要注意排好线序,把8根线的头剪齐,留下大约1.8公分,插入水晶头的时候,水晶头要尾巴向下,把线插到水晶头的底端,用网线钳子夹紧。具体是:第1脚——橙白、第2脚——橙色、第3脚——绿白、第4脚——蓝色、第5脚——蓝白、第6脚——绿色、第7脚——棕白、第8脚——棕色,除了四根带颜色的线橙、绿、蓝、棕外,每一根白线上都有线标橙、绿、蓝、棕。

qq_43416206的博客 1678

深度解析 Android 开发工程师岗位:技术栈、职责与面试全攻略

本文深度剖析Android开发工程师职位要求,从核心技术栈到面试准备进行全面解读。关键点包括:1)掌握Kotlin语言特性和Jetpack组件;2)具备UI开发、性能优化和逆向分析能力;3)理解MVVM架构和Room数据库;4)熟悉常用工具链和开发流程。文章提供了详细的面试题库及解析,涵盖基础概念、UI优化、架构设计等方向,并给出职业发展建议:夯实基础、拓展技术广度、培养工程素养。旨在帮助开发者系统性地准备Android岗位求职,把握移动开发领域的技术趋势。

郑伟强dev的专栏 176

ArrayList和Vector源代码中的区别

Vector和ArrayList的区别。都实现了List接口,属于Java集合框架的内容;都是用对象数组来存储数据的,元素初始个数默认都是10个;Vector和ArrayList的Java版本不一样;Vector数组元素默认扩容1倍,ArrayList只能扩容0.5倍;Vector线程安全,ArrayList线程不安全

lovewinner512的专栏 329

HanLP的分词

HanLP的分词

sikh_0529的博客 1万+

从源代码角度来分析ArrayList、LinkedList、Vector的区别

目录一、ArrayList1、结论2、证明2.1、ArrayList是List接口的实现类2.2、底层数据结构是数组2.3、查询快2.4、添加删除慢2.5、不是线程安全的2.6、如果不设置初始化容量,那么初始化容量是0,并且将在初次执行添加方法的时候会将容量增加到102.7、如果设置初始化容量,无论设置的初始化容量是否大于10,都不会在添加的时候将容量增加到102.8、按照数组容量的1.5倍进行扩容2.9、如果你知道ArrayList的大致容量,最好设置初始化容量,毕竟扩容是通过数组复制来完成的,这还是很耗

qq_42449963的博客 337

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Vector和ArrayList的比较

List接口下一共实现了三个类:ArrayList,Vector,LinkedList。LinkedList就不多说了,它一般主要用在保持数据的插入顺序的时候。ArrayList和Vector都是用数组实现的,主要有这么三个区别:1、Vector是多线程安全的,而ArrayList不是,这个可以从源码中看出,Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效...

苦茶的博客 178

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java arraylist的实现_Java集合---ArrayList的实现原理

目录:一、ArrayList概述:ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWr...

weixin_35772723的博客 141

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【java】【java collection】Vector

学习vector请看官方API https://docs.oracle.com/javase/7/docs/api/java/util/Vector.html 学习参考资料 http://www.cnblogs.com/skywang12345/p/3308833.html 学习vector请看源代码   自己还没有全部看完 看了一大半 还有后面一部分没有看完 public clas

lzm18064126848的专栏 750

阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第29章:List集合:课时129:Vector子类

Vector是一个原始古老的程序类,这个类是在JDK1.0时提供的。到了JDK1.2时由于许多开发者已经习惯于使用Vector,并且许多系统类也是基于Vector实现的,考虑到其使用的广泛性,所以类集框架将其保留了下来,并让其多实现了一个List接口,观察Vector的定义结构: public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Seria

Kenny C 162

Java集合---ArrayList的实现原理

一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的Co...

weixin_33923148的博客 67

ArrayList的实现原理

一、 ArrayList概述:   ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。       ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并...

jaesonchen 141

java vector 线程安全_关于Vector到底是不是 线程安全的 问题

线程安全,在java的多并发编程中是重要概念,意思是,多个线程同时操作一个对象,在各种不同情况下,都不会造成不同的后果。一个经典问题,Vector到底是不是线程安全的?很多人都会回答,是,vector是线程安全的。诚然,不止是很多IT教材上是这么写的,就连JDK的作者写的注释也是这么说的。如下图(图为 JDK中Vector的源代码):注释中,红框标记的部分写着:如果你不需要线程安全的实现类,那就推...

weixin_39928461的博客 2603
上一篇: 使用Java在文件里插入一行
下一篇: 一个简单的Socket实现的HTTP响应服务器(GET/POST/UPLOAD)
java2000_test
博客等级 码龄19年 10粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值