作者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
1F:推 luoqr:哪个地方有违背你说的HashSet的定义? 12/13 19:31
2F:→ etman395:循序增加数字 可是add的数字却没有每行就照顺序印出来 12/13 20:28
3F:→ etman395:add 123456 可是println六次 123456 顺序都乱跳 为何? 12/13 20:37
4F:推 TonyQ:HashSet 没有保证顺序. 12/13 22:33
5F:→ etman395:是喔~所以新增一个元素後~原本的元素排序还会打乱喔?? 12/13 23:14
6F:→ etman395:喔~我应该用LinkedHashSet 12/13 23:28