第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

面試刷題8:Vector ArrayList LinkedList區(qū)別?

標(biāo)簽:
Java


image.png




高效的管理和操作数据(数据结构)是非常重要的,java提供了对应的集合框架。




我是李福春,我在准备面试,今天的问题是:


Vector,ArrayList,LinkedList有什么区别?


这3个货都是List的直接子类或者间接子类,实现的是顺序集合,都提供了add,delete,index,遍历等操作。


区别是:


Vector是线程安全的,性能略差,自动扩容按照1倍扩容,适合按照顺序检索的场景;
ArrayLIst是非线程安全的,性能高,扩容基数0.5, 适合按照顺序检索的场景;
LinkedList是双向链表,是非线程安全的,性能高,不存在扩容,适合增加,删除的场景








Java的集合体系


image.png




Map没有继承Collection,不归纳如集合体系;


一些集合的实现是依赖于map来实现的;


比如TreeSet, 底层是 TreeMap , 只使用了key;  它是有序的,查询时间复杂度是常数级别,增加,删除,包含操作时间复杂度是log(n)


HashSet底层实现是HashMap , 它是无顺序的,增删包含操作是常数级别的时间复杂度,但是不宜设置过大的容量;


以上的集合除了Vector都是线程非安全的。










集合的算法



主要说默认的排序算法,Arrays.sort(T[])
当传入原始类型,使用的是双轴快速排序;
当传入对象类型,使用的是归并和二分插入综合的排序;


java8提供了stream,集合也支持并行排序。可以充分发挥多核心的计算能力。


Java8对集合的改进



基于接口的defalut方法,扩展了现有集合,可以轻松的Stream化;


小结



本篇先说明了ArrayList,LinkedList,Vector的相同点,再从线程安全,底层结构,扩容,性能,适用场景做了区别对比。

在扩展回顾了java的Collection体系包含的容器,特别之处了TreeSet,HashSet的底层实现马甲。

在简单说了一下集合的默认排序算法和并行排序算法,以及集合在java8中的Stream化。




![image.png](https://cdn.nlark.com/yuque/0/2020/png/186661/1585115987540-714973d1-8a76-48ef-9eb3-1535a4e65ace.png#align=left&display=inline&height=914&name=image.png&originHeight=1828&originWidth=2198&size=350122&status=done&style=none&width=1099)

原创不易,转载请注明出处!

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消