真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法

這篇文章主要講解了“Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法”吧!

成都創(chuàng)新互聯(lián)主營甘南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,甘南h5微信小程序定制開發(fā)搭建,甘南網(wǎng)站營銷推廣歡迎甘南等地區(qū)企業(yè)咨詢

1:集合 Collection(單列集合) List(有序,可重復(fù)) ArrayList 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢 線程不安全,效率高 Vector 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢 線程安全,效率低 LinkedList 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快 線程不安全,效率高 Set(無序,唯一) HashSet 底層數(shù)據(jù)結(jié)構(gòu)是哈希表(實(shí)際上是一個(gè)HashMap實(shí)例)。 哈希表依賴兩個(gè)方法:hashCode()和equals() 執(zhí)行順序: 首先判斷hashCode()值是否相同 是:繼續(xù)執(zhí)行equals(),看其返回值 是true:說明元素重復(fù),不添加 是false:就直接添加到集合 否:就直接添加到集合 最終: 自動(dòng)生成hashCode()和equals()即可

            LinkedHashSet
                底層數(shù)據(jù)結(jié)構(gòu)由鏈表和哈希表組成。
                由鏈表保證元素有序。
                由哈希表保證元素唯一。
        TreeSet
            底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹。(是一種自平衡的二叉樹)
            如何保證元素唯一性呢?
                根據(jù)比較的返回值是否是0來決定
            如何保證元素的排序呢?
                兩種方式
                    自然排序(元素具備比較性)
                        讓元素所屬的類實(shí)現(xiàn)Comparable接口
                    比較器排序(集合具備比較性)
                        讓集合接收一個(gè)Comparator的實(shí)現(xiàn)類對(duì)象
Map(雙列集合)
    A:Map集合的數(shù)據(jù)結(jié)構(gòu)僅僅針對(duì)鍵有效,與值無關(guān)。
    B:存儲(chǔ)的是鍵值對(duì)形式的元素,鍵唯一,值可重復(fù)。
    
    HashMap
        HashMap是Java 1.2引進(jìn)的基于哈希表Map接口的一個(gè)非同步實(shí)現(xiàn)(HashMap繼承于AbstractMap,AbstractMap完成了Map接口)。
        此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用null值和null鍵。此類不保證映射的順序,特別是它不保證該順序恒久不變。
        底層數(shù)據(jù)結(jié)構(gòu)是[數(shù)組+鏈表]組成的。線程不安全,效率高
            哈希表依賴兩個(gè)方法:hashCode()和equals()
            執(zhí)行順序:
                首先判斷hashCode()值是否相同
                    是:繼續(xù)執(zhí)行equals(),看其返回值
                        是true:說明元素重復(fù),不添加
                        是false:就直接添加到集合
                    否:就直接添加到集合
            最終:
                自動(dòng)生成hashCode()和equals()即可
        LinkedHashMap
            底層數(shù)據(jù)結(jié)構(gòu)由雙向循環(huán)鏈表和哈希表組成。
                由鏈表保證元素有序。
                由哈希表保證元素唯一。
    Hashtable
        Hashtable是基于陳舊的Dictionary類,完成了Map接口。線程安全,效率低
            哈希表依賴兩個(gè)方法:hashCode()和equals()
            執(zhí)行順序:
                首先判斷hashCode()值是否相同
                    是:繼續(xù)執(zhí)行equals(),看其返回值
                        是true:說明元素重復(fù),不添加
                        是false:就直接添加到集合
                    否:就直接添加到集合
            最終:
                自動(dòng)生成hashCode()和equals()即可
    TreeMap
        底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹。(是一種自平衡的二叉樹)
            如何保證元素唯一性呢?
                根據(jù)比較的返回值是否是0來決定
            如何保證元素的排序呢?
                兩種方式
                    自然排序(元素具備比較性)
                        讓元素所屬的類實(shí)現(xiàn)Comparable接口
                    比較器排序(集合具備比較性)
                        讓集合接收一個(gè)Comparator的實(shí)現(xiàn)類對(duì)象

2.關(guān)于集合選取原則

是否是鍵值對(duì)象形式:
    是:Map
        鍵是否需要排序:
            是:TreeMap
            否:HashMap
        不知道,就使用HashMap。
        
    否:Collection
        元素是否唯一:
            是:Set
                元素是否需要排序:
                    是:TreeSet
                    否:HashSet
                不知道,就使用HashSet
                
            否:List
                要安全嗎:
                    是:Vector
                    否:ArrayList或者LinkedList
                        增刪多:LinkedList
                        查詢多:ArrayList
                    不知道,就使用ArrayList
        不知道,就使用ArrayList

3:集合的常見方法及遍歷方式 Collection: add() remove() contains() iterator() size()

    遍歷:
        增強(qiáng)for
        迭代器
        
    |--List
        get()
        
        遍歷:
            普通for
    |--Set

Map:
    put()
    remove()
    containskey(),containsValue()
    keySet()
    get()
    value()
    entrySet()
    size()
    
    遍歷:
        根據(jù)鍵找值
        根據(jù)鍵值對(duì)對(duì)象分別找鍵和值

感謝各位的閱讀,以上就是“Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


新聞標(biāo)題:Java數(shù)據(jù)結(jié)構(gòu)List與Map的用法
當(dāng)前URL:http://weahome.cn/article/geoodo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部