在你眼中的ArrayList

2021-10-25 07:06:07 字數 2387 閱讀 6415

arraylist:底層是用陣列實現儲存

特點:查詢效率高,增刪效率低,執行緒不安全,使用頻率高

1.為什麼執行緒不安全卻使用頻率高?

因為在正常使用中常用來做查詢,增刪很少。用linkedlist可以做頻繁的增刪,vector的方法全用synchronized修飾,是執行緒安全的,這是三者的區別。

2.底層陣列大小是固定的,如果不斷的往裡新增資料會出現問題嘛?

arraylist可以通過構造方法在初始化的時候指定底層陣列的大小。

3.陣列長度受限制,而arraylist長度不受限制,是怎麼實現的呢?

通過陣列擴容的方式。arraylist預設陣列長度為10,擴容後10+10/2=15;1.5倍擴容。

4.arraylist的增刪效率低,你可以說說他的實現原理嘛?

插入和刪除都會改變原來資料的位置,涉及到大量資料的複製,隨後進行移動,如果插入的資料太多還設計到擴容,所以效率低

5.arraylist會不會初始化陣列大小?

會初始化陣列大小,但list的大小沒變,因為list的大小返回的是size();

6.陣列和arraylist適合做佇列嘛?

arraylist不適合,佇列先入先出 ,就得在arraylist頭部做刪除,尾部做新增。

陣列合適,arrayblockingqueue內部實現就是⼀個環形佇列,它是⼀個定⻓佇列,內部是⽤⼀個定⻓陣列來實現的。

7.arraylist常⽤的⽅法總結

boolean add(e e)

將指定的元素新增到此列表的尾部。

void add(int index, e element)

將指定的元素插⼊此列表中的指定位置。

boolean addall(collection extends e> c)

按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素新增到此列表的尾部。

boolean addall(int index, collection extends e> c)

從指定的位置開始,將指定 collection 中的所有元素插⼊到此列表中。

void clear()

移除此列表中的所有元素。

object clone()

返回此 arraylist 例項的淺表副本。

boolean contains(object o)

如果此列表中包含指定的元素,則返回 true。

void ensurecapacity(int mincapacity)

如有必要,增加此 arraylist 例項的容量,以確保它⾄少能夠容納最⼩容量引數所指定的元素數。

e get(int index)

返回此列表中指定位置上的元素。

int indexof(object o)

返回此列表中⾸次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。

boolean isempty()

如果此列表中沒有元素,則返回 true

int lastindexof(object o)

返回此列表中最後⼀次出現的指定元素的索引,或如果此列表不包含索引,則返回 -1。

e remove(int index)

移除此列表中指定位置上的元素。

boolean remove(object o)

移除此列表中⾸次出現的指定元素(如果存在)。

protected void removerange(int fromindex, int toindex)

移除列表中索引在 fromindex(包括)和 toindex(不包括)之間的所有元素。

e set(int index, e element)

⽤指定的元素替代此列表中指定位置上的元素。

int size()

返回此列表中的元素數。

object toarray()

按適當順序(從第⼀個到最後⼀個元素)返回包含此列表中所有元素的陣列。

t toarray(t a)

按適當順序(從第⼀個到最後⼀個元素)返回包含此列表中所有元素的陣列;返回陣列的運⾏時型別是指定陣列的運⾏時型別。

void trimtosize()

將此 arraylist 例項的容量調整為列表的當前⼤⼩。

在你眼中,人生最重要的是什麼?

在你眼中,人生最重要的是什麼?家人 朋友 健康?還是汽車 房子 工作?在正文開始之前,我們希望你沉澱一下自己,認真想想人生對你而言最重要的是什麼?家人 朋友 理想工作 成就感 歸屬感 健康 學習 自信 金錢 社會地位 答案沒有設限範圍或數量,哪些是你最想把握的?近兩年,越來越多的人不回家過年了。回家...

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...

眼中體 大家眼中的IT男

當我成為一名lt男後,在父母眼中我就像 帝國的主角一樣了不起,在親戚眼中我是在寫字樓做辦公室吹空調的人,在朋友眼中我就是乙個修電腦的,在 同行眼裡我就是乙個泡網咖的,在女友眼中我是乙個從保安華麗轉身為工程師的段小磊,我理想中的樣子應該是和賈伯斯 比爾蓋茨那樣的人,但我實際上是乙個宅 在家裡抽菸吃零食...