最近碰到的面試 集合(一)

2021-08-27 19:56:16 字數 739 閱讀 6708

1、collection和collections

collection是乙個介面,它提供了集合類的通用方法如size()、isempty()、toarray()、add(e)之類的方法

collections是乙個集合包裝類,提供了一系列有關聚合的靜態(static)方法,此方法不能new(因為構造方法是priate的)。

2、arraylist和linkedlist區別

arraylist繼承了randomaccess,而linkedlist則是繼承的sequenceaccess,randomaccess和sequenceaccess介面下都沒有內容,只是用來標記說明乙個是支援隨機訪問,乙個是順序訪問的。

arraylist內部實現是乙個陣列object elementdata,linkedlist則是乙個佇列。

所以,在add和remove中,linkedlist要比arraylist要快,但是在get的時候,arraylist要比linkedlist快得多,因為linkedlist是要遍歷整個鍊錶的。

兩個都不是執行緒安全的。

arraylist的執行緒安全可以考慮copyonwritearraylist(但是這個是鎖住所有資料的private transient volatile object array)

3、set為啥是不會重複的

set的實現(如hashset),內部實際上是放置了乙個hashmapmap;然後add(e)的時候實際上是用了map.put(e, dummyobjs)來防止重複。

字典與集合(一

1.字典 字典這種資料結構的特徵也正如字典一樣,使用名稱 內容進行資料的構建,在python中分別對應著鍵 值,習慣上稱之為鍵值對。特徵 1 字典中的資料必須是以鍵值對的形式的出現的 2 邏輯上講,鍵是不能重複的,而值可以重複 3 中的鍵是不可變的,也就是無法修改的 而值是可以變的,可修改的,可以是...

Java初學之集合(一)

刪除 獲取長度 判斷 將集合轉為陣列 取出元素 刪 改 查 特有的迭代器 treeset 二叉樹資料結構,可以對元素進行排序,不同步排序方式 需要元素具備比較功能,所以元素需要實現comparable介面,覆蓋compareto方法。需求中也有這樣一種情況,元素具備的比較方法不是所需要的,也就是說不...

C 編譯問題集合(一)

error no match for operator operand types are std basic ostream and 我將自己的 貼上來 std cout the volume of a 0 is 其中volume是我定義的乙個函式 int volume 當時反覆檢查輸出覺得沒有錯...