1.1
、arraylist
底層是陣列實現的,執行緒不安全,查詢和修改快,增刪比較慢
1.2、linkedlist
底層是鍊錶實現的,執行緒不安全,增刪比較快,查詢和修改計較慢
1.3、vector
底層是陣列實現的,執行緒是安全的,無論增刪改查都比較慢
結論:
如果查詢和修改多,用
arraylist
如果增和刪多,用
linkedlist
如果都多,用
arraylist
2.1、
hashset
底層是雜湊演算法實現的
linkedhashset
底層是鍊錶實現的,但是也是可以保證元素唯一,和
hashset
原理一樣
2.2、treeset
底層是二叉樹演算法實現
結論:一般在開發的時候不需要對儲存的元素排序,所以在開發的時候大多用
hashset
,hashset
的效率比較高
treeset
在面試的時候比較多
底層是雜湊演算法,針對鍵
3.1.1
、linkedhashmap
底層是鍊錶,針對鍵
3.2、treemap
底層是二叉樹演算法,針對鍵
結論:
開發中用
hashmap
比較多,
Java各種集合的實現要點概括
arraylist是list介面的可變陣列非同步實現,並允許包括null在內的所有元素。底層使用陣列實現 該集合是可變長度陣列,陣列擴容時,會將老陣列中的元素重新拷貝乙份到新的陣列中,每次陣列容量增長大約是其容量的1.5倍,這種操作的代價很高。採用了fail fast機制,面對併發的修改時,迭代器很...
Java的陣列和集合
arraylist實現了randomaccess介面,是隨機訪問的,各個元素之間沒有關係。而foreach查詢是iterator的變形用法,所以arraylist用foreach查詢,就需要強制建立一些互相知曉的關係,所有用foreach遍歷arraylist比較耗時,用下標方式遍歷性能較高。而li...
java 集合轉陣列
寫了乙個測試例子 如下 test public void enfor for string str abc collectionmoney new arraylist money.add rmb money.add doller money.add ker money.add jpy money.a...