大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 企業(yè)常見(jiàn)的Java數(shù)據(jù)結(jié)構(gòu)面試題

企業(yè)常見(jiàn)的Java數(shù)據(jù)結(jié)構(gòu)面試題

更新時(shí)間:2020-07-13 15:23:33 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2707次

請(qǐng)談一談,hashCode()和equals()方法的重要性體現(xiàn)在什么地方?

Java中的HashMap使用hashCode()和equals()方法來(lái)確定鍵值對(duì)的索引,當(dāng)根據(jù)鍵獲取值的時(shí)候也會(huì)用到這兩個(gè)方法。如果沒(méi)有正確的實(shí)現(xiàn)這兩個(gè)方法,兩個(gè)不同的鍵可能會(huì)有相同的hash值,因此,可能會(huì)被集合認(rèn)為是相等的。而且,這兩個(gè)方法也用來(lái)發(fā)現(xiàn)重復(fù)元素。所以這兩個(gè)方法的實(shí)現(xiàn)對(duì)HashMap的精確性和正確性是至關(guān)重要的。

請(qǐng)說(shuō)一說(shuō),Java中的HashMap的工作原理是什么?

HashMap類(lèi)有一個(gè)叫做Entry的內(nèi)部類(lèi)。這個(gè)Entry類(lèi)包含了key-value作為實(shí)例變量。每當(dāng)往hashmap里面存放key-value對(duì)的時(shí)候,都會(huì)為它們實(shí)例化一個(gè)Entry對(duì)象,這個(gè)Entry對(duì)象就會(huì)存儲(chǔ)在前面提到的Entry數(shù)組table中。Entry具體存在table的那個(gè)位置是根據(jù)key的hashcode()方法計(jì)算出來(lái)的hash值(來(lái)決定)。

介紹一下,什么是hashmap?

HashMap是一個(gè)散列表,它存儲(chǔ)的內(nèi)容是鍵值對(duì)(key-value)映射。HashMap繼承于AbstractMap,實(shí)現(xiàn)了Map、Cloneable、java.io.Serializable接口。HashMap的實(shí)現(xiàn)不是同步的,這意味著它不是線程安全的。它的key、value都可以為null。此外,HashMap中的映射不是有序的。

HashMap的實(shí)例有兩個(gè)參數(shù)影響其性能:“初始容量”和“加載因子”。容量是哈希表中桶的數(shù)量,初始容量只是哈希表在創(chuàng)建時(shí)的容量。加載因子是哈希表在其容量自動(dòng)增加之前可以達(dá)到多滿(mǎn)的一種尺度。當(dāng)哈希表中的條目數(shù)超出了加載因子與當(dāng)前容量的乘積時(shí),則要對(duì)該哈希表進(jìn)行rehash操作(即重建內(nèi)部數(shù)據(jù)結(jié)構(gòu)),從而哈希表將具有大約兩倍的桶數(shù)。通常,默認(rèn)加載因子是0.75,這是在時(shí)間和空間成本上尋求一種折衷。加載因子過(guò)高雖然減少了空間開(kāi)銷(xiāo),但同時(shí)也增加了查詢(xún)成本(在大多數(shù)HashMap類(lèi)的操作中,包括get和put操作,都反映了這一點(diǎn))。在設(shè)置初始容量時(shí)應(yīng)該考慮到映射中所需的條目數(shù)及其加載因子,以便最大限度地減少rehash操作次數(shù)。如果初始容量大于最大條目數(shù)除以加載因子,則不會(huì)發(fā)生rehash操作。

hashmap共有4個(gè)構(gòu)造函數(shù):

//默認(rèn)構(gòu)造函數(shù)。HashMap()

//指定“容量大小”的構(gòu)造函數(shù)

HashMap(int capacity)

//指定“容量大小”和“加載因子”的構(gòu)造函數(shù)

HashMap(int capacity,float loadFactor)

//包含“子Map”的構(gòu)造函數(shù)

HashMap(Map<?extends K,?extends V>map)

講一講,如何構(gòu)造一致性哈希算法。

先構(gòu)造一個(gè)長(zhǎng)度為232的整數(shù)環(huán)(這個(gè)環(huán)被稱(chēng)為一致性Hash環(huán)),根據(jù)節(jié)點(diǎn)名稱(chēng)的Hash值(其分布為[0,232-1])將服務(wù)器節(jié)點(diǎn)放置在這個(gè)Hash環(huán)上,然后根據(jù)數(shù)據(jù)的Key值計(jì)算得到其Hash值(其分布也為[0,232-1]),接著在Hash環(huán)上順時(shí)針查找距離這個(gè)Key值的Hash值最近的服務(wù)器節(jié)點(diǎn),完成Key到服務(wù)器的映射查找。

這種算法解決了普通余數(shù)Hash算法伸縮性差的問(wèn)題,可以保證在上線、下線服務(wù)器的情況下盡量有多的請(qǐng)求命中原來(lái)路由到的服務(wù)器。

請(qǐng)問(wèn),Object作為HashMap的key的話,對(duì)Object有什么要求嗎?

要求Object中hashcode不能變。

請(qǐng)問(wèn)hashset存的數(shù)是有序的嗎?

Hashset是無(wú)序的。

TreeMap和TreeSet在排序時(shí)如何比較元素?Collections工具類(lèi)中的sort()方法如何比較元素?

TreeSet要求存放的對(duì)象所屬的類(lèi)必須實(shí)現(xiàn)Comparable接口,該接口提供了比較元素的compareTo()方法,當(dāng)插入元素時(shí)會(huì)回調(diào)該方法比較元素的大小。TreeMap要求存放的鍵值對(duì)映射的鍵必須實(shí)現(xiàn)Comparable接口從而根據(jù)鍵對(duì)元素進(jìn)行排序。Collections工具類(lèi)的sort方法有兩種重載的形式,第一種要求傳入的待排序容器中存放的對(duì)象比較實(shí)現(xiàn)Comparable接口以實(shí)現(xiàn)元素的比較;第二種不強(qiáng)制性的要求容器中的元素必須可比較,但是要求傳入第二個(gè)參數(shù),參數(shù)是Comparator接口的子類(lèi)型(需要重寫(xiě)compare方法實(shí)現(xiàn)元素的比較),相當(dāng)于一個(gè)臨時(shí)定義的排序規(guī)則,其實(shí)就是通過(guò)接口注入比較元素大小的算法,也是對(duì)回調(diào)模式的應(yīng)用(Java中對(duì)函數(shù)式編程的支持)。

企業(yè)常見(jiàn)的Java數(shù)據(jù)結(jié)構(gòu)面試題

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“企業(yè)常見(jiàn)的Java數(shù)據(jù)結(jié)構(gòu)面試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 99久热国产精品视频尤物不卡 | 黄色毛片a| 亚洲最大激情网 | 日韩中文字幕在线不卡 | 国产在线不卡视频 | 久久亚洲美女久久久久 | 欧美黄一片 | 搜索一级毛片 | 国产国语videosex另类 | 永久黄网站色视频免费 | 日本精品区 | 国产视频不卡 | 在线激情网址 | 精品久久久久久久久中文字幕 | 国产高清一级毛片在线不卡 | 日本亚洲精品成人 | 国产成人高清视频免费播放 | 精品国产91 | 黄色成人毛片 | 亚洲第一页在线播放 | 欧美日产 | 欧美13一14周岁a在线播放 | 香蕉视频黄色片 | 国产精品成人久久久 | 国产99久9在线视频 国产99久久 | 99在线视频免费 | 精品久久久久久久一区二区伦理 | 国产精品福利一区二区 | 看久久| 在线观看亚洲视频 | 成人在线第一页 | 久久精品动漫99精品动漫 | 欧美激情在线精品一区二区 | 深夜福利网站在线 | 四虎免费在线观看 | 成人久久久精品乱码一区二区三区 | 亚洲人成亚洲精品 | 国产精品边做奶水狂喷小说 | 中文字幕久久久 | 国产在线观看一区二区三区四区 | 亚洲成人福利在线 |