久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Collection List Set Map 區(qū)別記憶 - gwshuai - Java...

 日全食 2009-07-22

這些都代表了Java中的集合,,這里主要從其元素是否有序,,是否可重復(fù)來(lái)進(jìn)行區(qū)別記憶,,以便恰當(dāng)?shù)厥褂茫?dāng)然還存在同步方面的差異,,見(jiàn)上一篇相關(guān)文章,。
 
 
有序否
允許元素重復(fù)否
Collection
List
Set
AbstractSet
HashSet
TreeSet
是(用二叉樹(shù)排序)
Map
AbstractMap
使用key-value來(lái)映射和存儲(chǔ)數(shù)據(jù),Key必須惟一,,value可以重復(fù)
HashMap
TreeMap
是(用二叉樹(shù)排序)
 
 
 
List接口對(duì)Collection進(jìn)行了簡(jiǎn)單的擴(kuò)充,,它的具體實(shí)現(xiàn)類常用的有ArrayList和LinkedList。你可以將任何東西放到一個(gè)List容器中,,并在需要時(shí)從中取出,。ArrayList從其命名中可以看出它是一種類似數(shù)組的形式進(jìn)行存儲(chǔ),因此它的隨機(jī)訪問(wèn)速度極快,,而LinkedList的內(nèi)部實(shí)現(xiàn)是鏈表,,它適合于在鏈表中間需要頻繁進(jìn)行插入和刪除操作。在具體應(yīng)用時(shí)可以根據(jù)需要自由選擇,。前面說(shuō)的Iterator只能對(duì)容器進(jìn)行向前遍歷,,而ListIterator則繼承了Iterator的思想,并提供了對(duì)List進(jìn)行雙向遍歷的方法,。

Set接口也是Collection的一種擴(kuò)展,,而與List不同的時(shí),在Set中的對(duì)象元素不能重復(fù),,也就是說(shuō)你不能把同樣的東西兩次放入同一個(gè)Set容器中,。它的常用具體實(shí)現(xiàn)有HashSet和TreeSet類。HashSet能快速定位一個(gè)元素,,但是你放到HashSet中的對(duì)象需要實(shí)現(xiàn)hashCode()方法,,它使用了前面說(shuō)過(guò)的哈希碼的算法。而TreeSet則將放入其中的元素按序存放,,這就要求你放入其中的對(duì)象是可排序的,,這就用到了集合框架提供的另外兩個(gè)實(shí)用類Comparable和Comparator。一個(gè)類是可排序的,,它就應(yīng)該實(shí)現(xiàn)Comparable接口,。有時(shí)多個(gè)類具有相同的排序算法,那就不需要在每分別重復(fù)定義相同的排序算法,,只要實(shí)現(xiàn)Comparator接口即可,。集合框架中還有兩個(gè)很實(shí)用的公用類:Collections和Arrays。Collections提供了對(duì)一個(gè)Collection容器進(jìn)行諸如排序,、復(fù)制,、查找和填充等一些非常有用的方法,Arrays則是對(duì)一個(gè)數(shù)組進(jìn)行類似的操作。


Map是一種把鍵對(duì)象和值對(duì)象進(jìn)行關(guān)聯(lián)的容器,,而一個(gè)值對(duì)象又可以是一個(gè)Map,,依次類推,這樣就可形成一個(gè)多級(jí)映射,。對(duì)于鍵對(duì)象來(lái)說(shuō),,像Set一樣,一個(gè)Map容器中的鍵對(duì)象不允許重復(fù),,這是為了保持查找結(jié)果的一致性;如果有兩個(gè)鍵對(duì)象一樣,,那你想得到那個(gè)鍵對(duì)象所對(duì)應(yīng)的值對(duì)象時(shí)就有問(wèn)題了,可能你得到的并不是你想的那個(gè)值對(duì)象,,結(jié)果會(huì)造成混亂,,所以鍵的唯一性很重要,也是符合集合的性質(zhì)的,。當(dāng)然在使用過(guò)程中,,某個(gè)鍵所對(duì)應(yīng)的值對(duì)象可能會(huì)發(fā)生變化,這時(shí)會(huì)按照最后一次修改的值對(duì)象與鍵對(duì)應(yīng),。對(duì)于值對(duì)象則沒(méi)有唯一性的要求,。你可以將任意多個(gè)鍵都映射到一個(gè)值對(duì)象上,這不會(huì)發(fā)生任何問(wèn)題(不過(guò)對(duì)你的使用卻可能會(huì)造成不便,,你不知道你得到的到底是那一個(gè)鍵所對(duì)應(yīng)的值對(duì)象),。Map有兩種比較常用的實(shí)現(xiàn):HashMap和TreeMap。HashMap也用到了哈希碼的算法,,以便快速查找一個(gè)鍵,,TreeMap則是對(duì)鍵按序存放,因此它便有一些擴(kuò)展的方法,,比如firstKey(),lastKey()等,,你還可以從TreeMap中指定一個(gè)范圍以取得其子Map。鍵和值的關(guān)聯(lián)很簡(jiǎn)單,,用pub(Object key,Object value)方法即可將一個(gè)鍵與一個(gè)值對(duì)象相關(guān)聯(lián),。用get(Object key)可得到與此key對(duì)象所對(duì)應(yīng)的值對(duì)象。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多