Java集合原始碼分析06 Stack原始碼分析

2021-08-31 01:26:49 字數 1470 閱讀 8773

目錄簡介

介紹原始碼分析(基於jdk1.8) 案例

stack模擬的是棧的操作,繼承了vector類,底層也是通過陣列來實現的。棧的資料特點是先進後出(filo,first in last out),即最後壓入棧的元素,總是第乙個彈出棧。由於stack繼承了vector,所以執行緒安全,並且提供了操作佇列的方法,可以隨機訪問,能轉殖,能進行序列化和序列化傳輸。

1.構造方法

public stack() {}
2.內部方法

public e push(e item){}

public synchronized e pop() {}

public synchronized e peek() {}

public boolean empty() {}

public synchronized int search(object o) {}

public class stackextends vector

//向棧頂壓入乙個指定元素,底層呼叫的addelement()方法,並返回存入的元素。

public e push(e item)

//返回棧頂的元素,並從棧中移除。

//如果棧為空,將丟擲emptystackexception異常

public synchronized e pop()

//返回棧頂的元素,不執行移除操作。

//如果棧為空,將丟擲emptystackexception異常

public synchronized e peek()

//如果棧為空,返回true。

public boolean empty()

//查詢棧中指定元素,返回元素到棧頂部的距離。

public synchronized int search(object o)

return -1;

}/** use serialversionuid from jdk 1.0.2 for interoperability */

//序列化版本號

private static final long serialversionuid = 1224463164541339165l;

}

stack繼承了vector,所以擁有stack的大部分方法,這裡測試了棧的訪問。

public class stackdemo 

system.out.println("peek----"+stack.peek());

while(!stack.isempty())

system.out.println();

}}

執行結果:

peek----stack

stack about demo a is this 

可以看出先進棧的元素,後彈出棧。

java集合相關原始碼分析

hashmap 原始碼分析 hashset 原始碼分析 arraylist 原始碼分析 concurrentmap 原始碼分析 2018 03 25 map 綜述 一 徹頭徹尾理解 hashmap map 綜述 二 徹頭徹尾理解 linkedhashmap map 綜述 三 徹頭徹尾理解 concu...

java集合 ArrayList原始碼分析

arraylist是一種基於陣列實現的集合類,也是平常經常使用到的集合。其特性歸納如下 特性值 是否順序儲存 順序是否可重複儲存 可以是否可儲存null 可以是否執行緒安全 非執行緒安全 屬性說明 elementdata arraylist是基於陣列實現的,這就是arraylist用於儲存 size...

JAVA集合原始碼分析 HashMap

1 hashmap底層資料結構在1.7之前是陣列 鍊錶而1.8之後是陣列 鍊錶 紅黑樹 2 三個變數 initcapacity 陣列初始容量 loadfactory 載入因子 thresold 3 三個過程 陣列擴容的過程 resize 擴容後原陣列資料轉移到新資料結構的過程 陣列新增元素的過程 p...