oracle自帶加密函數(shù) 不同字符串的hash會(huì)重復(fù)嗎?
不同字符串的hash會(huì)重復(fù)嗎?是的,哈希值通常是一個(gè)整數(shù)值,它可以表示超過40億個(gè)值。顯然,字符串的數(shù)量是無限的,所以它會(huì)如何去重HashSet中的重復(fù)對(duì)象?集合將自動(dòng)重復(fù),這意味著集合中的元素具有相
不同字符串的hash會(huì)重復(fù)嗎?
是的,哈希值通常是一個(gè)整數(shù)值,它可以表示超過40億個(gè)值。顯然,字符串的數(shù)量是無限的,所以它會(huì)
如何去重HashSet中的重復(fù)對(duì)象?
集合將自動(dòng)重復(fù),這意味著集合中的元素具有相同的內(nèi)存地址。
例如
user1=newuser()用戶名.setName(“abc”)
user2=newUser()用戶名.setName(“ABC”)這里,user1和user2的內(nèi)存地址是不同的(在堆中每個(gè)都有自己的地址)。雖然它們都可以用getname獲取ABC,但它們不是“==”
如果此時(shí)user3=user1
,user3==user1在堆棧中只有不同的引用名,但它們并不相同,因?yàn)樗鼈冎赶蛳嗤膬?nèi)存地址。
因此,將user1和user2add添加到HashSet時(shí),集的大小將為2。如果將user1和user3放在HashSet中,則該集將重復(fù),大小將為1