最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Set集合遍歷輸出有序

Set集合遍歷輸出,加到了7個(gè)元素,在輸入順序不變的情況下,輸出依然與前一次順序一致。沒(méi)有發(fā)現(xiàn)兩次輸出不一樣。為什么


正在回答

1 回答

所謂無(wú)序(unordered),就是 Java 語(yǔ)言沒(méi)有規(guī)定 HashSet 按什么順序遍歷。你應(yīng)該知道,有好多種 Java 虛擬機(jī)。有的運(yùn)行在Windows上,有的運(yùn)行在 Linux上。即使在同一個(gè)平臺(tái)上,也會(huì)有好幾種虛擬機(jī)。每種虛擬機(jī)對(duì) HashSet的實(shí)現(xiàn)都是不一樣的,所以每種虛擬機(jī)對(duì) HashSet 的遍歷順序可能都不太一樣。但對(duì)同一種虛擬機(jī)來(lái)說(shuō),你的遍歷輸出都是一樣的。 Java 是跨派臺(tái)的,你寫的程序可能會(huì)在不同的平臺(tái)上運(yùn)行,這些平臺(tái)上的虛擬機(jī)都是不一樣的。如果你選用了 HashSet,就要明白,在不同的平臺(tái)上,遍歷順序可能會(huì)不一樣。如果你對(duì)遍歷順序有要求,就要考慮使用有序的,或排序的容器。
有序(ordered),就是 Java 規(guī)定了容器的遍歷順序。這個(gè)順序就是你在容器中加入元素的順序。LinkedHashSet就是一個(gè)有序的容器。不同的虛擬機(jī)可以用不同的方法來(lái)實(shí)現(xiàn),但都得保證遍歷的順序跟加入元素的順序一致。
排序(sorted)。對(duì)這樣的容器,不管你加入元素的順序是什么樣的,遍歷都是排好序的。比如你的容器里存的是 Integer,你先加入 5,然后又加入了 1,3, 9。最后的遍歷順序是 1,3,5,9。這樣的容器是使用 Comparable 或 Comparator來(lái)對(duì)元素進(jìn)行排序的。TreeSet就是一個(gè)排序容器。
你在程序中把 HashSet 換成 LinkedHashSet 或 TreeSet 試試,看輸出有什么變化。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

Set集合遍歷輸出有序

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)