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