java集合入門問題

2021-08-22 10:55:07 字數 1507 閱讀 5625

· 問題:

· 既然有了陣列,為什麼還要arraylist?__________

· 答:因為陣列大小本來不可變;如果要變化,則必須重新分配記憶體,太消耗資源。

· 陣列只能同一種基本資料型別;或者同乙個類的物件(排除object)。

· arraylist中有重複元素嗎?______,因為_______。增加值的順序是1,3,4,5,1,那麼輸出的的值順序為(考慮重複值和值的排序):_______。

· 答:有。因為arraylist也是在array的基礎之上開發的(或者說:封裝了陣列),由於陣列可以儲存重複元素的值,所以arraylist也可以。輸入的值順序為1,3,4,5,1。道理相同。

· treeset中有重複元素嗎?________,因為_______。增加值的順序是1,3,4,5,1,那麼輸出的的值順序為_______

· 答:無。因為:arraylist叫做有序列表,有順序就可以通過下標來標識,所以元素可以重複。set叫做無序列表,只能通過值的本身來標識,所以值是不以重複的;由於無序,所以每次輸出的結果不可預料。輸出結果為:1,3,4,5(可能的順序,關鍵是重複的1沒有出現。在jdk5.0以後,1可以自動由int轉化為integer型別)。

· 當資料集經常在中間插入、刪除時,用集合的哪種型別:_______,因為______。

· 答:linkedlist。因為:linkedlist叫做鍊錶;鍊錶的資料結構適合在元素增加或減少時,對整體的記憶體沒有影響;只是影響兩個相鄰的元素。而arrylist是底層封裝了array,所以在元素變化時仍然要重新分配記憶體。

· 當資料集常在後面追加時,用_______,因為_____________。

· 答:用arraylist。因為sun針對這個問題做了比較好的封裝。

· 單個迴圈輸出,效率比較高的是________,因為___________。

· 答::用arraylist,因為它是有序列表,是通過下標進行訪問的,所以效率最高。

· vector與arraylist的區別是:________。

· 答:兩者功能完全相同。但是vector用於多執行緒,不會有執行緒安全問題。因為vector用了sychronized關鍵字。而arraylist沒有用,所以arraylist執行緒不安全,vector執行緒安全。但是vector被稱為「過時的」,是不是就不能用了呢。不是。稱為過時的原因是因為arraylist很容易就變成執行緒安全的(加一句**即可),這樣arraylist即可以用於單執行緒環境,又可以很方便地在多執行緒環境中使用,所以相比之下vector就過時了。

· set中的元素都是不能重複的,那hashset與treeset的區別?

答:假設輸入值的順序為:1,4,3,1,用hashset輸出的順序為:1,4,3(可能);用treeset輸出的順序為:1,3,4(如windows的資料夾,不能重複,且有順序)。

· hashtable與hashmap的區別是:_______

答:table就是表的意思(如學生表的學號列,特徵是不能重複,而且不能為空。表是可以多個人訪問的,所以執行緒是安全的)。hashmap的key值是可以為空的,執行緒是不安全的。

java集合入門

可重複,取出的順序與新增的順序一樣。arraylist 採用變長陣列實現,內部使用陣列儲存新增的元素,如果元素的個數超過陣列的長度,則自動擴容。linkedlist 內部採用雙向鍊錶實現。可以使用它模擬佇列 棧等資料結構。不可重複,無序 取出的順序與新增的順序不一樣 hashset 內部使用hash...

java集合入門

集合 也叫作容器類 裝資料 物件 動態儲存多個物件 動態 容器的大小隨著儲存的物件的數量而改變 物件 引用型別 8種基本資料 包裝類型別 陣列 儲存相同資料型別的一組資料 1.泛型 集合 add object obj 子類型別 作用 保護集合中的資料的資料型別安全 2.遍歷集合 官配 迭代器 集合的...

java面試基礎 集合相關問題

1 hashmap linkedhashmap concurrenthashmap arraylist linkedlist的底層實現。hashmap 執行緒非安全 實現了map介面,雜湊表儲存鍵值對,entry物件hash陣列預設大小16,2的指數次擴充 位運算增速,查詢效率高 允許鍵值對為nul...