首页 > 代码库 > Java SE学习之Random
Java SE学习之Random
本文是学习网络上的文章时的总结以及自己的一点实践,感谢大家无私的分享。
昨天在项目中想使用几个随机数,结果使用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
Java SE学习之Random
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。