2 sinat 33179560 sinat_33179560 于 2016.03.02 14:55 提问

随机数问题,运行结果每次都一样

为什么每次运行结果都是一样的,费解,而且还很有规律,一点不像是随机数的样子,有知情人士么,附图代码图片说明

5个回答

broust
broust   2016.03.02 15:54

看第19行代码,你生成是随机数在0-29之间,然后运行了10000次,结果放在HashSet里,最后结果肯定是0......29啊
你将HashSet修改成ArrayList看看。顺序肯定不一样。
另外楼上的2个答案,Random默认的构造子是System.nanoTime()

caozhy
caozhy   Ds   Rxr 2016.03.02 15:20
 Random ran = new Random(System.currentTimeMillis(););
caozhy
caozhy   Ds   Rxr 2016.03.02 15:21
  Random ran = new Random(System.currentTimeMillis());
daidaineteasy
daidaineteasy   Ds   Rxr 2016.03.02 16:02

因为 你用的是HashSet,HashSet是无序的,并不会按照你存储的顺序来保存。你可以换LinkedHashSet试试。

例如下边的代码,输出是:[1, 2, 4, 5]

     public static void main(String[] args) {

        Set<Integer> s = new HashSet<Integer>();
        s.add(5);
        s.add(4);
        s.add(1);
        s.add(2);

        System.out.println(s);

    }
dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.03.02 22:50

你可以试试改变随机数种子

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!