課程
/后端開發(fā)
/Java
/Java入門第三季
添加Set之前代碼運(yùn)行正常,結(jié)果也正常。添加set之后,沒有報(bào)錯(cuò),但我選擇課程2、1、4,輸出的還是2、1、4,順序沒有變啊 ? 不知道為什么
2016-04-05
源自:Java入門第三季 4-11
正在回答
找到原因了,
DK8版java.util.HashMap內(nèi)的hash算法比JDK7版的混淆程度低;在[0, 2^32-1]范圍內(nèi)經(jīng)過HashMap.hash()之后還是得到自己。題主的例子正好落入這個(gè)范圍內(nèi)。外加load factor正好在此例中讓這個(gè)HashMap沒有hash沖突,這就導(dǎo)致例中元素正好按大小順序插入在HashMap的開放式哈希表里。作者:RednaxelaFX鏈接:https://www.zhihu.com/question/28414001/answer/40733996來源:知乎著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。
for(int?i=0;i<6;i++){ ??System.out.print("請輸入要的課程編號:"); ??String?courseID=sc.next(); ??for?(Course?temp?:?st.courseTo)?{ ??????if(temp.id.equals(courseID)){ ???????????st1.course.add(temp); ???????} ???} }
你將輸入課程ID部分代碼中的循環(huán)次數(shù)增加一點(diǎn),不要只限定輸入三次,就看出效果了
慕函數(shù)4910142
我百度了下,貌似JDK8(不知道從JDK幾開始,我是JDK8)的HashSet、HashMap實(shí)現(xiàn)變了。元素插入的的時(shí)候,hash表是用算法把不同的數(shù)據(jù)按照規(guī)則放在響應(yīng)的地址里,所以根據(jù)hash表的遍歷去找的話,無論怎么放,位置是一定的,并且遍歷的方式也是一定的。
題主可以換成老版本的JDK試試,再看看效果
我的也是這個(gè)情況,沒有無序的效果,懷疑是Java8改進(jìn)的地方吧
邇丶眼眸里 提問者
舉報(bào)
Java中你必須懂得常用技能,不容錯(cuò)過的精彩,快來加入吧
1 回答我輸入的2 、1、4 結(jié)果還是2 、1、 4 試了三次都一樣 這是為什么呢
2 回答hashset的遍歷真的是無序的嗎?遍歷了100次都是同樣的順序!產(chǎn)生質(zhì)疑。
4 回答為什么我程序輸出不是無序的??
1 回答為什么我測試不出set的無序
5 回答為什么遍歷SET出來的是有序的,試了很多次都是這樣
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-11-24
找到原因了,
DK8版java.util.HashMap內(nèi)的hash算法比JDK7版的混淆程度低;在[0, 2^32-1]范圍內(nèi)經(jīng)過HashMap.hash()之后還是得到自己。題主的例子正好落入這個(gè)范圍內(nèi)。外加load factor正好在此例中讓這個(gè)HashMap沒有hash沖突,這就導(dǎo)致例中元素正好按大小順序插入在HashMap的開放式哈希表里。
作者:RednaxelaFX
鏈接:https://www.zhihu.com/question/28414001/answer/40733996
來源:知乎
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。
2016-04-22
你將輸入課程ID部分代碼中的循環(huán)次數(shù)增加一點(diǎn),不要只限定輸入三次,就看出效果了
2016-04-11
我百度了下,貌似JDK8(不知道從JDK幾開始,我是JDK8)的HashSet、HashMap實(shí)現(xiàn)變了。元素插入的的時(shí)候,hash表是用算法把不同的數(shù)據(jù)按照規(guī)則放在響應(yīng)的地址里,所以根據(jù)hash表的遍歷去找的話,無論怎么放,位置是一定的,并且遍歷的方式也是一定的。
題主可以換成老版本的JDK試試,再看看效果
2016-04-05
我的也是這個(gè)情況,沒有無序的效果,懷疑是Java8改進(jìn)的地方吧