容器繼承結構

2021-07-30 08:05:32 字數 836 閱讀 4263

collection繼承相關圖

幾個注意點:

1. 執行緒安全

arraylist、hashset/linkedhashset、priorityqueue、linkedlist是執行緒不安全的,可以使用synchronized關鍵字,或者類似下面的方法解決:

list list = collections.synchronizedlist(new arraylist(…));

clone()

arraylist、linkedlist、hashmap/linkedhashmap、treeset的clone()是淺拷貝,元素的引用和拷貝前相同;priorityqueue的clone()繼承自object。

foreach

在for(element e : collection)中:

collection == null,直接拋異常;

容器內容為空,即剛剛被new出來,裡面什麼也沒有,直接跳過迴圈;

容器中放了null(如果允許的話),則將這個null取出並賦值給e,執行迴圈中的語句。

null物件

list可以放無限多個,set只能放乙個。enumset、priorityqueue是不能放null的。這個null也在計數中。所以放進去null用foreach取出來時需要判空。

map繼承相關圖

容器繼承關係

vactor 陣列結構查詢遍歷快,刪除 插入 更改慢,執行緒安全 list arraylist 陣列結構查詢遍歷快 刪除 插入 更改慢,執行緒不安全 有序加入順序 linkedlist 雙向連表結構查詢遍歷慢 刪除 插入 更改快 collection hashset 底層用hashmap來實現,a ...

001 繼承結構

在上面的繼承結構之中,我們知道,在spring之中dispatcherservlet是核心的servlet.另外乙個方面就是機車鞥了httpservletbean,也就擁有了servlet的功能.通過上面的繼承結構,我們知道dispatcherservlet擁有了ioc的功能和servlet的功能....

c 標準容器可以繼承嗎

c 標準提供了不少容器類,這些為c 的應用提供了很大的便利。但是,總有些時候這些標準容器提供的功能不能完全滿足需求,於是就有人從標準容器上繼承出了自己的類。那麼,標準容器可以用作基類嗎?先說結論吧,不推薦,不要用。為什麼呢?標準中所用的容器類都沒有虛的析構函式。沒有虛析構就意味著這些類並不準備被用於...