集合(Collection和Map)
Hash(散列函數(shù))
Hash,一般翻譯做散列、雜湊,或音譯為哈希,是把任意長度的輸入通過散列算法變換成固定長度的輸出,該輸出就是散列值。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會(huì)散列成相同的輸出,所以不可能從散列值來確定唯一的輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)。
Collection
單列集合的根接口,用于存儲(chǔ)一系列符合某種規(guī)則的元素
List:元素有序、可重復(fù)
ArrayList:
是List接口的一個(gè)實(shí)現(xiàn)類。在ArrayList內(nèi)部封裝了一個(gè)長度可變的數(shù)組對象,當(dāng)存入的元素超過數(shù)組長度時(shí),ArrayList會(huì)在內(nèi)存中分配一個(gè)更大的數(shù)組來存儲(chǔ)這些元素。
正是由于ArrayList內(nèi)部的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)是數(shù)組形式,在增加或指定位置的元素時(shí),會(huì)創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作
ArrayList list = new ArrayList(); list.add("stu1");LinkedList:
該集合內(nèi)部包含有兩個(gè)Node類型的first和lastshuxing1維護(hù)一個(gè)雙向循環(huán)鏈表。
Set:元素?zé)o序、不可重復(fù)
HashSet集合
該集合存儲(chǔ)的元素使不可重復(fù)的,并且元素都是無序的。當(dāng)向HashSet集合添加一個(gè)元素時(shí),首先會(huì)調(diào)用該元素的hashCode()方法來確認(rèn)元素的存儲(chǔ)位置,然后再調(diào)用元素對象equals()方法來確保該位置沒有重復(fù)元素。
TreeSet
該集合元素不可重復(fù),并且可以對元素進(jìn)行排序
Map
雙列集合的根接口,用于存儲(chǔ)具有鍵(Key)、值(Value)映射關(guān)系的元素。
HashMap集合
鍵不能重復(fù),且集合中的元素是無序的,其子類LinkedHashMap有序
TreeMap
總結(jié)
以上是生活随笔為你收集整理的集合(Collection和Map)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 堆和栈存放的内容
- 下一篇: equals和hashCode