ArrayList學習心得

2021-10-08 09:41:48 字數 1356 閱讀 1283

arraylist 底層是用陣列實現的儲存。

特點:add()

先確保陣列有足夠的容量存放元素:ensurecapacityinternal(int mincapacity)

先計算本次add需要的容量:calculatecapacity(object elementdata, int mincapacity)

有兩種情況:

若arraylist是通過無參構造產生的,需要進入if判斷,預設初始化的大小是10,返回預設初始化大小和需要的陣列大小中較大的那個

否則直接返回需要的容量

確保陣列能存放上一步calculatecapacity計算的容量:ensurecapacityinternal(int mincapacity)

若要求的容量大於當前陣列長度,則進行擴容

擴容函式:grow(int mincapacity)

通過newcapacity = oldcapacity + (oldcapacity >> 1)1.5倍擴容原陣列,若擴容後的陣列大小還是小於需要的容量,則直接將需要的容量作為新陣列大小

若新陣列大小 大於 最大陣列大小,呼叫hugecapacity(mincapacity);進行擴容

若 mincapacity 溢位丟擲異常

否則返回 integer.max_value

若新陣列大小 不大於 最大陣列大小,直接呼叫arrays.copyof(elementdata, newcapacity);對陣列進行擴容後移動資料並返回新陣列給elementdata

學習心得 python學習心得

自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...

學習心得 我的學習心得

我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...

Spring學習心得

不看不知道,一看便學到,會不會與您產生共鳴呢?喜歡再捧場拍磚 spring使用從一年前開始,邊學習邊開發。這裡講講我的學習心得。第一條 記住ioc就是spring的一切。而掌握ioc的唯一方法就是使用和思考。spring是ioc為核心的,所以第一步就是要深刻理解ioc,最好是能盡快把ioc作為教條式...