java集合主要有三種類型:
●List:是個有序集合,可以放重複的數據
●Set: 是個無序集合,不可以放重複數據
●Map: 是個無序集合,一個鍵對象,一個值對象,鍵對象不可以重複,值對象可以重複。
以下圖解是List和Set集合的繼承關係:
也許你看了上面的繼承圖,可能有點疑惑:鏈表、哈希表等數據結構到底是怎麼樣的呢?
接下來詳細解析一下數組、鏈表和哈希表等數據結構:
●數組數據結構:
通過上圖不難發現,知道了數組首元素內存地址,要查找的元素只要知道下標就可以快速計算出偏移量,通過首元素內存地址加上偏移量快速計算出要查找元素的內存地址,通過內存地址就可以快速定位該元素,所以數組查詢效率很高。同理,增刪元素時,爲了保證數組中的元素是有序的,就要重新維護這個順序,導致增刪元素效率很低。
●單向鏈表數據結構:
●雙向鏈表數據結構:
存儲原理和單向鏈表類似,在這裏就不多說了。
●哈希表數據結構:
哈希表可以看做是,數組和單向鏈表的結合,所以哈希表的增刪和查詢效率都是很高的。