作者etman395 (聖子到)
看板java
標題Re: [問題] 樂透不能重複問題
時間Sat Dec 13 18:44:24 2008
import java.util.HashSet;
import java.util.Set;
public class NewClass {
public static void main(String args[]){
Set<Integer> s = new HashSet<Integer>();
int ball,sum = 46;
while(s.size()<6){
s.add((int)((Math.random()*sum)+1));
System.out.println(s);
}
}
}
請問一下喔
我故意把System.out.println(s);放在while裡面去觀察每次增加一個亂數後
HashSet s的集合變化
可是HestSet特性不是不重覆不且不會排序順序就一直往下增加下去?
為什麼印出來後
結果卻是像這樣
順序亂掉
[37]
[35, 37]
[35, 37, 40]
[35, 37, 8, 40]
[35, 37, 8, 40, 44]
[1, 35, 37, 8, 40, 44]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.84.96
推 luoqr:哪個地方有違背你說的HashSet的定義? 12/13 19:31
→ etman395:循序增加數字 可是add的數字卻沒有每行就照順序印出來 12/13 20:28
→ etman395:add 123456 可是println六次 123456 順序都亂跳 為何? 12/13 20:37
推 TonyQ:HashSet 沒有保證順序. 12/13 22:33
→ etman395:是喔~所以新增一個元素後~原本的元素排序還會打亂喔?? 12/13 23:14
→ etman395:喔~我應該用LinkedHashSet 12/13 23:28