ArrayQueue底層原始碼分析

2021-10-17 11:20:55 字數 1265 閱讀 5102

public

class

arrayqueue

extends

abstractlist

//用於建立陣列,為泛型,通過指定的資料型別強制轉變,生成需要的陣列

private t[

]newarray

(int size)

//擴容

//首先需要計算一下原有的陣列大小為多少,即size的值

//判斷擴容大小和原有陣列大小的值,如果擴容小了即報錯,不能進行擴容

//之後將擴容容量+1

//接著新建陣列,進行陣列值的複製,並且重新更新容量,陣列,頭部,尾部

public

void

resize

(int newcapacity)

t newqueue =

newarray

(newcapacity)

;for

(int i=

0;i)this

.capacity = newcapacity;

this

.queue = newqueue;

this

.head =0;

this

.tail = size;

}private

intsize()

return diff;

}//用於resize中重陣列中獲取值

public t get

(int i)

int index =

(head + i)

% capacity;

return queue[index];}

//新增元素,先新增元素,再移動尾指標,需要判斷是否滿了

public

boolean

add(t o)

tail = newtail;

return

true;}

//刪除元素,相當於出隊,先刪除頭元素,之後移動頭指標

ArrayList底層原始碼

arraylist的屬性 private static final int default capacity 10 預設初始容量的大小 private static final object empty elementdata 空陣列,用於有參構造時引數為零的例項 private static fi...

Hash底層原始碼分析

hsah 雜湊將乙個任意長度通過某種 函式函式演算法 轉換成乙個固定值,通過hash出來的值,通過只定位到map,key value 基本原理。hashtable是基於map介面的實現。這個版本的實現提供了所有map操作的實現並且允許null值和null鍵 除了允許空值 null 和不支援同步,ha...

Spring ioc底層原始碼初見

ioc成為依賴注入 di 是乙個物件定義依賴關係的過程,物件只通過構造函式引數,工廠方法的引數或物件例項構造或工廠方法返回在物件例項上設定的屬性來定義它們所使用的其他物件,然後容器在建立bean時注入這些依賴項,這個過程本質是bean本身的逆過程,因此稱為控制反轉 ioc aliasregistry...