亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Set集合遍歷輸出有序

Set集合遍歷輸出,加到了7個元素,在輸入順序不變的情況下,輸出依然與前一次順序一致。沒有發現兩次輸出不一樣。為什么


正在回答

1 回答

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

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Set集合遍歷輸出有序

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號