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

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

為什么我的Set每次取出的順序一樣,不是每次都會變嗎?

為什么我用的是Set,每次的牌都是一樣的,雖然存進去的順序打亂了,但每次運行的結果都一樣。用foreach,歷遍元素輸出的也是一樣的。

正在回答

2 回答

使用集合元素添加元素后確實是無序的,但通過迭代器或者foreach輸出元素的順序幾乎都是一致的.具體跟哪些因素有關我也說不出.

所以涉及到打亂元素順序就不能使用set了.

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

不應該啊,貼代碼,一起看看

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

Paul666 提問者

public static void main(String[] args) { String[] cardnums={"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; String[] cardcols={"黑桃","紅桃","梅花","方塊"};//創建撲克元素 Set<Card> h=new HashSet<Card>();//創建Set將撲克牌存入,用于打亂撲克牌
2016-04-09 回復 有任何疑惑可以回復我~
#2

Paul666 提問者

int m=cardcols.length*cardnums.length; for(int i=0;i<cardcols.length;i++){ for(int j=0;j<cardnums.length;j++){ int k=0; Card cards[]=new Card[m]; cards[k]=new Card(cardcols[i],cardnums[j]); h.add(cards[k]);//將撲克牌導入Set
2016-04-09 回復 有任何疑惑可以回復我~
#3

Paul666 提問者

for(Card ca:h){ System.out.println(ca.color+ca.cnum+" "); ? } 雖然順序打亂了。。但每次輸出的是一樣的。。
2016-04-09 回復 有任何疑惑可以回復我~
#4

Paul666 提問者

雖然程序問題已經解決了。。用collections.shuffle()。。洗牌,。。。但是還是不懂Set怎么和老師講的不一樣..難道是老師每次都把不同元素存入了Set,而改變了Set里元素的順序;而我之后沒改變Set,所以雖然打亂了順序就只有一次?
2016-04-09 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

為什么我的Set每次取出的順序一樣,不是每次都會變嗎?

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

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

幫助反饋 APP下載

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

公眾號

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