精华内容
下载资源
问答
  • ArrayList和Vector 的区别是什么? ●线程安全:Vector使用了Synchronized 来实现线程同步, 是线程安全 的,而ArrayList 是非线程安全的。 ●性能: ArrayList在性能方面要优于Vector。 ●扩容:ArrayList和Vector都会...

    ArrayList和Vector 的区别是什么?

    ●线程安全:Vector使用了Synchronized 来实现线程同步, 是线程安全
    的,而ArrayList 是非线程安全的。
    ●性能: ArrayList在性能方面要优于Vector。
    ●扩容:ArrayList和Vector都会根据实际的需要动态的调整容量,只不
    过在Vector扩容每次会增加1倍,而ArrayList只会增加50%。
    在这里插入图片描述

    展开全文
  • 027 ArrayList Vector 的区别是什么? 答: List接口一共有三个实现类,分别是ArrayListVector和LinkedList。 List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。 主要区别: 同步性:Vector是...

    027 ArrayList 和 Vector 的区别是什么?

    答:

    • List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。
    • List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。

    主要区别:

    • 同步性:Vector是线程安全的,用synchronized实现线程安全,而ArrayList是线程不安全的。(实现同步需要很高的花费,所以访问Vector比访问ArrayList慢)
    • 数据容量增长:二者都有一个初始容量大小,采用线性连续存储空间,当存储的元素的个数超过了容量时,就需要增加二者的存储空间,Vector增长原来的一倍,ArrayList增加原来的0.5倍。

    总结:

    • LinkedList:增删改快
    • ArrayList:查询快(有索引的存在)
    • 如果只有一个线程会访问到集合,那最好使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们再去考虑和编写线程安全的代码。

    拓展:

    • LinkedList和ArrayList都是通过数组实现。缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。
    • LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。

    看到最后的帮忙点个👍🙏 谢谢,这个对我真的很重要!
    在这里插入图片描述

    展开全文
  • ArrayList Vector 的区别是什么

    千次阅读 2020-07-19 16:59:12
    ArrayList和Vector的区别,主要包括两个方面 同步性: Vector线程安全的,也就是说它的方法直线线程同步的,而ArrayList线程不安全的,它的方法之间线程不同步的 如果只有一个线程去访问集合那么使用...

    首先两个类都实现了List接口。他们都是有序不唯一的集合,说白了就是存储元素的位置是有序的(每一个元素都以一个对应的索引),相当于一个动态数组

    ArrayList和Vector的区别,主要包括两个方面

    同步性
    Vector是线程安全的,也就是说它的方法直线是线程同步的,而ArrayList是线程不安全的,它的方法之间是线程不同步的

    如果只有一个线程去访问集合那么使用ArrayList,他不考虑线程安全的问题,所以效率会高一些

    如果是多个线程去访问集合,那么使用Vector

    数据增长性

    ArrayList和Vector集合都有一个初始容量的大小,当元素的个数超过存储容量是,就需要增加ArrayList和Vector的存储空间,每次增加不是

    增加一个而是增加多个,Vector是增加原来的两倍,ArrayList没有明文规定,但是从源码中可以看出增长原来的1.5倍

    ArrayList和Vector可以设置初始的存储空间的大小,Vector还以设置增长空间大小,而ArrayList不可以。

    展开全文
  • java当中arraylist和vector的区别你都了解吗?在这两者之间究竟有什么不同呢?下面就让我们一起来做一下详细的了解吧。一、区别首先,arraylist和vector这两类都实现List接口。List接口一共有3个实现类,一个...

    java当中arraylist和vector的区别你都了解吗?在这两者之间究竟有什么不同呢?下面就让我们一起来做一下详细的了解吧。

    一、区别

    首先,arraylist和vector这两类都实现List接口。

    List接口一共有3个实现类,一个是ArrayList、一个是Vector、一个是LinkedList。

    List用来存放多个元素,可以维护元素的次序,并且,还允许元素的重复。

    下面就重点的来个大家介绍一下arraylist和vector这两个具体实现类的相关区别。

    1、ArrayList:

    ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。

    数组的缺点是每个元素之间不可以存在间隔,在数组大小不满足的时候,需要增加存储能力,要将已经有数组的数据复制到新的存储空间当中。

    当从ArrayList的中间位置插入或者是删除元素的时候,需要对数组进行复制、移动、代价比较高。

    所以说,它适合随机查找和遍历,不适合插入和删除。

    2、Vector

    Vector和ArrayList相同,都是通过数组实现的,但是,区别就在于Vector支持线程的同步。

    也就是一时刻只有一个线程可以写Vector,避免多线程同时写而引起的不一致性,可是,实现同步需要很高的花费,所以,访问它比访问ArrayList慢。

    除此之外,arraylist和vector的扩展数组的大小也不同。

    arraylist:public boolean add(E e)

    {

    ensureCapacity(size + 1); // 增加元素,判断是否能够容纳。不能的话就要新建数组

    elementData[size++] = e;

    return true;

    }

    public void ensureCapacity(int minCapacity)

    {

    modCount++;

    int oldCapacity = elementData.length;

    if (minCapacity > oldCapacity)

    {

    Object oldData[] = elementData; // 此行没看出来用处,不知道开发者出于什么考虑

    int newCapacity = (oldCapacity * 3) / 2 + 1; // 增加新的数组的大小

    if (newCapacity 

    newCapacity = minCapacity;

    // minCapacity is usually close to size, so this is a win:

    elementData = Arrays.copyOf(elementData, newCapacity);

    }

    }

    vector:private void ensureCapacityHelper(int minCapacity)

    {

    int oldCapacity = elementData.length;

    if (minCapacity > oldCapacity)

    {

    Object[] oldData = elementData;

    int newCapacity = (capacityIncrement > 0) ?

    (oldCapacity + capacityIncrement) : (oldCapacity * 2);

    if (newCapacity 

    {

    newCapacity = minCapacity;

    }

    elementData = Arrays.copyOf(elementData, newCapacity);

    }

    }

    对于arraylist和vector的区别你都清楚了吗?更多java常见问题,欢迎继续通过奇Q工具网来了解。

    推荐阅读:

    展开全文
  • Vector 使用了 Synchronized 来实现线程同步,线程安全,而 ArrayList 是非线程安全。 源码分析: Vector /** * Appends the specified element to the end of this Vector. * * @param e element to ...
  • ArrayList Vector 的区别

    千次阅读 2019-05-06 10:19:33
    ArrayList Vector 的区别是什么Vector 的方法都是同步的,线程安全;ArrayList 非线程安全,但性能比Vector好 默认初始化容量都是10,Vector 扩容默认会翻倍,可指定扩容的大小;ArrayList只增加 50% ...
  • ArrayList Vector 的区别是什么? 线程安全:Vector 使用了 Synchronized 来实现线程同步,是线程安全的,而 ArrayList 是非线程安全的。 性能:ArrayList 在性能方面要优于 Vector。 扩容:ArrayList Vector ...
  • ArrayList和Vector的区别

    千次阅读 2019-05-31 09:49:20
    ArrayList和Vector的区别 ArrayList和Vector这两个集合本质上并没有什么太大的不停,他们都实现了List接口,而且底层都基于Java数组来存储集合元素。 在ArrayList集合类的源代码中也可以看到下面一行: transient...
  • 另一个方法就是Vector,它是ArrayList的线程安全版本,其实现90%和ArrayList都完全一样,区别在于: Vector是线程安全ArrayList是线程非安全Vector可以指定增长因子,如果该增长因子指定了,那么扩容...
  • 看一个经常出现的JAVA面试题:ArraylistVector的区别是什么? 首先我们给出标准答案: 1、Vector是线程安全的,ArrayList不是线程安全的。 2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展...
  • Vector 类中所有方法都同步,可以由两个线程安全访问同一个Vector对象,但是一个线程访问Vector 话就会在同步操作上耗费大量时间。 ArrayList 不是同步,所有在不需要保证线程安全时建议使用ArrayList...
  • ArrayListVector的区别主要从二方面来说. 一.同步性:Vector线程安全的,也就是说同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList...
  • **线程安全:**Vector 使用了 Synchronized 来实现线程同步,线程安全,而 ArrayList 是非线程安全。 **性能:**ArrayList 在性能方面要优于 Vector。 **扩容:**ArrayList Vector 都会根据实际需要动态...
  • 一、ArrayList和Vector的区别 存储结构 ArrayList和Vector按照顺序将元素存储(从下表为0开始),删除元素时,删除操作完成后,需要使部分元素移位,默认的初始容量都10. ArrayList和Vector基于数组实现的...
  • ArrayList和Vector什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都Java面试中常见基础问题。面对这样问题,回答:ArrayList是非线程安全,Vector线程安全...
  • (1)ArrayList是线程不安全,效率高,而Vector是线程安全,效率低。 ArrayList源码: /** * {@inheritDoc} */ public boolean equals(Object o) { //没有加synchronized if (o == this) { return true; }...
  • 通过看源码发现,它们都实现了List接口,那么List接口到底是什么东西?我们再进去看看: List: 可以看到List提供了很多很方便好用方法。原来那些相似十八般武艺都是从这里教出来。 至此我们通过看源码知道了...
  • 【1】ArrayList Vector基于存储 Object[] array 来实现,它们会在内存中开辟一块连续空间来存储(默认10数组大小内存),由于数据存储连续,因此,它们支持用序号(下标)来访问元素,同时索.....
  • ArrayList Vector基于存储元素 Object[ ] array 来实现,它们会在内存中开辟一块连续空间来存储,由于数据存储连续,因此,它们支持用序号(下标)来访问元素,同时索引数据速度比较快。...
  • ArrayList和Vector是java集合包中最常用的两个类,Vector和ArrayList之间的区别是第一轮或电话采访中最常见的java面试问题之一。虽然在我看来这是一个相当简单的问题,但是知道什么时候使用Vector ArrayList,或者...
  • ArrayList和Vector基于存储元素Object[ ] array 来实现,他们会在内存中开辟一块连续空间来存储,由于数据存储连续,因此,他们支持用序号(下标)来访问元素,同时索引数据速度比较快。但是在插入...
  • Vector和ArrayList的本质区别到底是什么?[url]http://www.iteye.com/topic/924440[/url]
  • ArrayList Vector 使用上有什么区别?...1 Vector的方法都同步的(Synchronized),线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Ve
  • ArrayList 和Vector基于数组实现存储,集合中元素位置都有顺序即连续;LinkedList基于双向链表实现存储,集合中元素位置不连续 2.性能区别:Vector和ArrayList底层实现原理一致,但是...
  • 文章目录ArrayList、Vector和LinkedList有什么区别敲黑板ArrayListVectorLinkList ArrayList、Vector和LinkedList有什么区别 ArrayList、Vector、...ArrayList和Vector基于存储元素Object[] array来实...
  • ArrayList和Vector是可以自动扩容数组,LinkedList一种双向链表结构 什么是双向链表? 链表存储的是一个个节点,从当前位置既能指向上一个节点又能定位到下一个节点链表称为双向链表,相应,只能指向下...
  • 展开全部ArrayList和Vector使用了数组实现32313133353236313431303231363533e4b893e5b19e31333365633866,可以认为ArrayList或者Vector封装了对内部数组操作,比如向数组中添加,删除,插入新元素或者数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 785
精华内容 314
关键字:

arraylist和vector的区别是什么