国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > Java Vector和ArrayList的异同分析

Java Vector和ArrayList的异同分析

头像

小妮浅浅

2021-01-19 10:48:233100浏览 · 0收藏 · 0评论

在线程中有两种常用的方法,能够通过数组实现相应的功能,但除此之外在区别上也是很明显的。本篇就其中的代表方法ArrayList和Vector进行比较分析,一个是非线程安全,另一个是线程安全。在进行相同和不同点的分析之后,带来二者的实例代码对比,帮助大家体会它们的异同。

1.相同点

(1)都是有序集合。

(2)数据不允许重复。

(3)都实现了list接口。

(4)都是通过数组实现的。

(5)数组进行复制、移动、代价比较高,因此,适合随机查询和遍历,不适合插入和删除。

2.不同点

1)ArrayList属于线程不安全(线程不同步)即当多线程进行对ArrayList集合的操作时,有可能对数据进行不正确的操作。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些。

2)Vector是线程安全的(同步线程)即当在同一时刻只能有一个线程进行对Vector集合的操作时,但是Vector要做到线程同步,需要大量的花费,可能消耗大量的内存或者CPU。如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们再去考虑和编写线程安全的代码。

3)ArrayList在内存不够时默认扩展1.5倍,Vector是默认扩展1倍。

4)Vector提供indexOf(object,start)接口,ArrayList没有。

3.实例代码对比

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 < minCapacity)
 
   
 
       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 < minCapacity) {
 
   
 
       newCapacity = minCapacity;
 
   
 
        }
 
   
 
         elementData = Arrays.copyOf(elementData, newCapacity);
 
   
 
    }
 
   
 
}

以上就是Java Vector和ArrayList的异同分析,相信它们的不同之处已经在运行代码后,会直观的体会到了。大家可以根据自己线程安全或效率的需求,在使用的时候进行挑选。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

免费高清在线观看免费的PPT软..| 麻花星空天美MV免费观看电视剧| 二人努力生猴子免费观看| 器材室轮-J-(4)对着镜子| 电视机怎么选| 班长哭了能不能再抠游戏里面的钱 | 姐姐片多多免费高清电视剧| 绝色儿媳在线观看免费版电视剧| 伊蕾尔| 风流夫人免费观看高清电视剧 | 巜催情精油按摩2高潮| 妈妈你真棒里面的插曲叫什么 | 九九在线观看免费播放大全电视剧 | 在车里被弄了4次高潮| 《炸裂吧!巨棒》免费阅读漫画| 有夫之妇精油按摩的功效与作用 | 麻豆免费观看A片WWW| 电影《满足2》完整版在线观看| 轮流和两个男人一起很容易染病吗 | 蜜桃成时熟2| 女子排尿视频大全| 精品免费国产一区二区三区四区| 欧美片《肉欲进入》| 免费观看B站刺激战场2023| 我在公车被蹭水后当晚就来了月经 | 《不再是朋友的夜晚第二季》| 《法国空乘5》观看| 耕耘小侄女小说全文免费阅读 | 《漂亮的秘书HD》在线观看| 激吻视频| 成熟5| 歪歪漫画| BOBO浏览器(海外版)| AAA成人片爽久爽久爽| 一个人看的免费高清直播| 四个人换着来免费观看第二季 | 人犬兽人在线观看免费完整| 《从上司到妻子》动画结局| 伦理《少妇的滋味》完整版| 舒淇与黑人性猛交| 校花晚上自慰忘穿内裤怎么办