关于java集合中随机化的思考

关于java集合中随机打乱的思考

最近写一个业务的时候需要初始化一个集合,然后对里面的数字进行随机打乱,java自带的随机方法有很多,这里就不进行罗列了,我总结了一下几点:

1、初始化的时候尽量根据你的业务要求来,不能具有规律性

for(int i=0;i<=9;i++){
    for(int j=0;j<4;j++){
        c.insert(i);
    }
}

例如以上的代码,随机之后两两连续相同的概率就比较大,改成如下:

for(int i=0;i<4;i++){
    for(int j=0;j<=9;j++){
        c.insert(j);
    }
}

随机之后两两相同的概率就要低一些。
2、如果随机一次的效果不太好,可以随机打乱多次,即写一个循环来随机打乱。
3、如果在高并发的情况下,多个线程可能拿到了相同的随机化种子,可能会造成不同的集合随机后的结果是差不多的,这个可以搭配初始化方法的不同和随机种子两个方法来解决。

你可能感兴趣的:(java)