您的位置:首页 > 编程语言 > Java开发

Java SE学问Random

2015-10-10 19:38 330 查看
这篇文章是在网络上的文章内容摘要学习以及自己的小练习,感谢您的无私分享。

昨天在项目中想使用几个随机数。结果使用Random时竟然出现随机数同样的情况。忍不住查了些资料。

现将代码总结例如以下:

package SE;

import java.util.Random;

public class RandomUnit {

/**
*
* <p>
* 无种子參数的构造方法使用一个和当前系统时间相应的相对时间有关的数字作为种子数。
* 然后使用这个种子数构造Random对象。
* </p>
* @author zhangjunshuai
* @date 2014-10-28 上午11:07:53
*/
static void randomNull(){
for (int i = 0; i < 100; i++) {
Random r = new Random();
System.out.println("无种子參数:"+r.nextInt());
}
}
/**
* <p>
* 在种子參数是同一个数字的时候。出现仅仅有一个随机数的情况
* </p>
* @author zhangjunshuai
* @date 2014-10-28 上午11:18:17
*/
static void randomHave(){
for (int i = 0; i < 100; i++) {
Random r = new Random(37);
System.out.println("有种子參数:"+r.nextInt());
}
}

/**
*
* <p>
* 注意random调用方法的顺序变化之后,产生的随机值才会变
* </p>
* @author zhangjunshuai
* @date 2014-10-27 下午6:54:17
*/
static void random(){
Random r = new Random(47);
System.out.println(r.nextInt());
System.out.println(r.nextBoolean());
Random w= new Random(47);
System.out.println(w.nextInt());
System.out.println(w.nextBoolean());
Random h= new Random(47);
System.out.println(h.nextFloat());
System.out.println(h.nextInt());

System.out.println(h.nextBoolean());
}
/**
*
* <p>
* 利用setSeed方法实现伪随机数
* </p>
* @author zhangjunshuai
* @date 2014-10-28 上午11:29:02
*/
static void setSeed(){
Random r = new Random();
for (int i = 0; i < 100; i++) {

System.out.println("有种子參数:"+r.nextInt(270));
r.setSeed((long)r.nextLong());
}
}
/**
* <p>
* </p>
* @author zhangjunshuai
* @date 2014-10-28 上午10:56:48
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//randomNull();
//randomHave();
//random();
setSeed();

}

}


參考: http://lehsyh.iteye.com/blog/646658
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: