在日常開(kāi)發(fā)中,集合與排序是每一個(gè)程序員經(jīng)常用到的技能,但是在用集合的時(shí)候我們還應該知道他的底層結構是什么樣的.
首先來(lái)說(shuō)一下list集合,list集合底層代碼是通過(guò)延長(cháng)數組來(lái)實(shí)現的,所有我們在list集合中經(jīng)??梢愿杏X(jué)其用法與數組非常類(lèi)似.list集合會(huì )有一個(gè)初始的長(cháng)度,在每一次進(jìn)行存值的時(shí)候,list集合都會(huì )判斷該集合的長(cháng)度是否達到臨界值(一般為75%),然后對其進(jìn)行擴容,一般是對當前的長(cháng)度進(jìn)行翻倍.這樣就可以使list集合擁有無(wú)限長(cháng)的空間存儲數據.
set集合是一種單列的,不重復的集合.一般用于存取一些主要的數據,比如用戶(hù)的一些核心信息,這些東西不允許重復的.而且set集合因為實(shí)現了hashCode的算法來(lái)進(jìn)行存取,所有有比較強的查找與讀取能力.
Map集合也是我們平常廣泛用到的一種集合,map集合的長(cháng)度與list大致相同,但是map集合是一種list集合與set集合的組合起來(lái)的集合,因為它是在一條list上給每個(gè)元素對應一個(gè)set集合,還會(huì )對該set集合進(jìn)行鏈表式排序,當集合中的數據大于指定數量時(shí),map集合對將數據再次進(jìn)行紅黑樹(shù)的排序,以保證查詢(xún)的效率.
咨詢(xún)熱線(xiàn)
010-85377344
135-21581588
微信客服
QQ客服
3026106565 點(diǎn)擊咨詢(xún)