亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Vector、Arraylist、LinkedList區別

標簽:
產品

    本博客站的集合模块下有关于这几个类的源码解析,应该先阅读他们的源码。

    首先这三个类都是实现自List接口,也就使得他们都是具有角标的存储集合。

    ArrayList和Vector底层都是基于数组的而且数组大小可变,ArraList默认大小为10,当然我们也可以根据需求调用

有参构造器指定大小,Vector也一样,默认为10,可自定义大小,ArrayList扩容是变化为原数组大小的1.5倍,而Vector默认

是变为原数组大小的二倍,Vector也可以在构造器中指定每次增长的大小。Vector是线程安全的,而ArrayList是线程不安全的,

而且两者的迭代器对象都采用的是快速失败机制,快速失败机制的实现其实很简单,顺便说下,就是定义一个变量,没对集合

进行一次更改(添加、删除、修改)操作,都让这个变量加一,当用迭代器进行迭代的时候,没遍历一个都要查看一下这个变量,

看变量是否发生了变化,一旦发生了变化,立即抛出异常。

    LinkedList不同于上面两个,它的底层是链表的结构,相对于其他两个它的插入删除速度较快,查找就比较慢了。

除此之外,LinkedList集合还是先了Deque(Queue接口的子接口),所以LinkedList也代表一个双向队列。同时Deque接口还提

供了一些包括pop(出栈)和push(入栈)两个方法。所以LinkedList也可以当做“栈”来使用。由此可见,LinkedList是一个

功能强大的集合类

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

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

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消