标签:针对 存在 利用 java学习 highlight util 工具包 重复 div
1.随机数的生成
第一种方式:运用工具包java.lang.util.Random来生成
private static void suiji() { Random r=new Random(); int ival; for(int i=0;i<10;i++) { ival=r.nextInt(50); System.out.println(ival); } }
代码的意思是:生成0-50随机数,存在重复的。
第二种方式:用math类下的
private static void suiji2() { double dval; long lval; int ival; for(int i=0;i<10;i++) { dval=Math.random()*100; //1.用math函数四舍五入 //ival=Math.round(dval); //2.用类型强制转换,将double转换成int ival=(int)Math.round(dval); System.out.println(ival); } }
代码采用 math提供的方法random获取0-1之间浮点数。然后乘以多少 获取相应范围内数,比如100,则小数点右移两位,获取0-100之间的数,但是获取的是浮点数,带有小数,然后用四舍五入函数 round或者int强制类型转换获取整数,但也是含有重复的数。
第三种:则是利用UUID码的生成:
private static void suiji3() { for(int i=0;i<10;i++) { String uuid=UUID.randomUUID().toString(); System.out.println(uuid); } }
代码生成永不重复uuid码。
我们现在针对前两个实现生成不重复的随机数。
private static void suiji4(int n,int m) { Integer arr[]=new Integer[n]; Random r=new Random(); int index=0; int ival; while(true) { boolean tag=false; ival=r.nextInt(m); for(int i=0;i<index;i++) { if(arr[i] == ival) { tag=true; break; } } if(!tag) { arr[index++]=ival; } if(index == n) { break; } } Arrays.sort(arr); for(int a:arr) { System.out.println(a); } }
利用一个标记位 Boolean tag 来实现判断该数组是否含有刚生成的随机数,没有则添加进数组,有则从新生成,传递两个参数 ,打印n个m范围内的不重复随机数。
标签:针对 存在 利用 java学习 highlight util 工具包 重复 div
原文地址:http://www.cnblogs.com/doucunkai/p/java.html