日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如果两个对象的哈希码相同则他们不一定相同,如果对象一致则哈希码一定相同

發(fā)布時(shí)間:2024/1/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如果两个对象的哈希码相同则他们不一定相同,如果对象一致则哈希码一定相同 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

String s1="hello world";

String s2=new String("hello world");

s1.hashCode()和s2.hashCode()其實(shí)是相等的。

hashCode()和equals()都是Object類(lèi)中的一個(gè)方法,String類(lèi)中重寫(xiě)了兩個(gè)方法,使得比較的是字符地址指向的內(nèi)容。

?

在集合中,set集合是不允許元素重復(fù)的,name如何保證元素不重復(fù)呢?

當(dāng)新添加一個(gè)元素的時(shí)候首先調(diào)用這個(gè)元素的hashCode方法,得到的哈希碼作為這個(gè)元素的存儲(chǔ)地址,如果這個(gè)地址上沒(méi)有元素,則直接存儲(chǔ)在這個(gè)地址上;如果這個(gè)地址上有元素,在調(diào)用equals方法比較,相同則不再存儲(chǔ),不相同的話就會(huì)產(chǎn)生沖突,會(huì)產(chǎn)生一個(gè)鏈接表,將這兩個(gè)元素串起來(lái)放在同一個(gè)哈希碼指定的位置上,而實(shí)際上會(huì)盡量避免哈希沖突。

如果直接調(diào)用equals方法,當(dāng)數(shù)據(jù)量過(guò)大時(shí),每次都會(huì)調(diào)用一次equals方法,效率低。

用hashCode方法比較減少對(duì)象比較次數(shù),提高查找效率。

總結(jié)

以上是生活随笔為你收集整理的如果两个对象的哈希码相同则他们不一定相同,如果对象一致则哈希码一定相同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。