java.util 最常用的集合類(lèi)之一是Map ,map提供了一個(gè)通用的元素存儲(chǔ)方法。 Map 集合類(lèi)用于存儲(chǔ)元素對(duì)(稱(chēng)作“鍵”和“值”),其中每個(gè)鍵映射到一個(gè)值。常用到的有hashmap和hashtable。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于汪清網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供汪清營(yíng)銷(xiāo)型網(wǎng)站建設(shè),汪清網(wǎng)站制作、汪清網(wǎng)頁(yè)設(shè)計(jì)、汪清網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造汪清網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供汪清網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
[@more@]Map 的接口和方法覆蓋的方法。 我們將這 Object 的這兩個(gè)方法覆蓋,以正確比較 Map 對(duì)象的等價(jià)性。
equals(Object o) | 比較指定對(duì)象與此 Map 的等價(jià)性 |
hashCode() | 返回此 Map 的哈希碼 |
其他方法
clear() | 從 Map 中刪除所有映射 |
remove(Object key) | 從 Map 中刪除鍵和關(guān)聯(lián)的值 |
put(Object key, Object value) | 將指定值與指定鍵相關(guān)聯(lián) |
clear() | 從 Map 中刪除所有映射 |
putAll(Map t) | 將指定 Map 中的所有映射復(fù)制到此 map |
如果我們使用putAll,則map可以自動(dòng)擴(kuò)展大小。如果使用put,建議在創(chuàng)建map的時(shí)候使用loadfactor自動(dòng)擴(kuò)展以提高效率。
查看 Map
訪問(wèn)元素
檢索有關(guān) Map 內(nèi)容的信息但不更改 Map 內(nèi)容。
get(Object key) | 返回與指定鍵關(guān)聯(lián)的值 |
containsKey(Object key) | 如果 Map 包含指定鍵的映射,則返回 true |
containsValue(Object value) | 如果此 Map 將一個(gè)或多個(gè)鍵映射到指定值,則返回 true |
isEmpty() | 如果 Map 不包含鍵-值映射,則返回 true |
size() | 返回 Map 中的鍵-值映射的數(shù)目 |
key唯一但是value不一定唯一,所以使用containsValue的時(shí)候可能效率會(huì)較低。
hash技術(shù)
int hashvalue = (key.hashCode() & 0x7FFFFFFF) % table.length;
需要考慮和處理hash collision,如果是使用已有的則不需要考慮,如果自己實(shí)現(xiàn)hashmap,
則需要考慮和處理對(duì)應(yīng)的case。
效率問(wèn)題:之前使用的時(shí)候簡(jiǎn)單創(chuàng)建,基本上都沒(méi)有初始化大小和負(fù)載因子,現(xiàn)在看了一下
jdk的help才發(fā)現(xiàn)有這兩個(gè)參數(shù)可以在很多時(shí)候提高性能。
在創(chuàng)建map的時(shí)候建議使用
Map userMap = new HashMap();
來(lái)替代
HashMap userMap = new HashMap();
這也符合設(shè)計(jì)模式或者面向?qū)ο蟮睦碚摚灰獙?shí)現(xiàn)了相同的接口和方法
只需要在這個(gè)創(chuàng)建的地方修改,使用不同的類(lèi)來(lái)創(chuàng)建,其他的調(diào)用代碼則無(wú)須修改。
名稱(chēng)欄目:javamap
當(dāng)前URL:http://bm7419.com/article14/ijhcde.html成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、企業(yè)建站、ChatGPT、面包屑導(dǎo)航、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)