黑马程序员技术交流社区

标题: 生成10个随机数,保证不重复 [打印本页]

作者: fhy1969038887    时间: 2015-5-19 21:48
标题: 生成10个随机数,保证不重复
下面写了俩个方法,有问题指出来,有更简单的方法欢迎分享
  1. package TestDemo;

  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.Random;

  5. /*
  6. * 生成10个随机数,保证不重复
  7. */

  8. public class TestDemo2 {
  9.         public static void main(String[] args) {
  10.                 // 数组做法
  11.                 Random rdm1 = new Random();
  12.                 int[] intRet = new int[10];
  13.                 int intRd = 0;
  14.                 int count = 0;
  15.                 int flag = 0;
  16.                 while (count < intRet.length) {
  17.                         intRd = rdm1.nextInt(10);
  18.                         for (int x = 0; x < count; x++) {
  19.                                 if (intRet[x] == intRd) {
  20.                                         flag = 1;
  21.                                         break;
  22.                                 } else {
  23.                                         flag = 0;
  24.                                 }
  25.                         }
  26.                         if (flag == 0) {
  27.                                 intRet[count] = intRd;
  28.                                 count++;
  29.                                 System.out.println(intRd);
  30.                         }
  31.                 }
  32.                 System.out.println("**************************");
  33.                 // 集合做法
  34.                 Collection<Integer> c = new ArrayList<Integer>();
  35.                 Random rdm2 = new Random();
  36.                 while (c.size() < 10) {
  37.                         int a = rdm2.nextInt(10);
  38.                         if (!c.contains(a)) {
  39.                                 c.add(a);
  40.                         }
  41.                 }
  42.                 System.out.println("c:" + c);
  43.         }
  44. }
复制代码



作者: godrick007    时间: 2015-5-19 22:12
学习了,楼主加油
作者: 香草芭芙    时间: 2015-5-19 22:16
为何不用 set呢? set 有唯一性, ArrayList 可以重复, 还得判断 , 用set 循环装数据 , 直到set size 变成10就是 不同的10个数了.
作者: fhy1969038887    时间: 2015-5-20 00:46
香草芭芙 发表于 2015-5-19 22:16
为何不用 set呢? set 有唯一性, ArrayList 可以重复, 还得判断 , 用set 循环装数据 , 直到set size 变成10 ...

谢谢分享
作者: 青春印记深圳    时间: 2015-5-20 01:45
直接用上系统当然时间就好了吧
作者: guoyangpeng    时间: 2015-5-20 06:53
不错,学习了
作者: qian0217wei    时间: 2015-5-20 09:08
我就来看看!其实觉得楼主做的太复杂了
作者: mmakun    时间: 2015-5-20 10:24
过来学习下
作者: 繁复    时间: 2015-5-20 10:32
数组那个方法我觉得直接用二重for循环更简单  上代码:  Random random = new Random();
                  int[] nums = new int[10];
                  for (int i = 0; i < nums.length; i++) {
                         nums[i] = random.nextInt(10);
                        for (int j = 0; j < i; j++) {
                                if(nums[i]==nums[j]){
                                        i = i-1;
                                        break;
                                }
                        }
                }


作者: asdaw    时间: 2015-5-20 10:54
恩 还不错
作者: xgd6612    时间: 2015-5-20 11:51
只是看看~~~
作者: 南山忆    时间: 2015-5-20 11:53
好强大的赶脚
作者: guojiadui    时间: 2015-5-20 13:24
感觉用TreeSet更好

作者: 开到荼靡    时间: 2015-5-20 15:45
LZ学了Set吗?
作者: 汪汪    时间: 2015-5-20 16:31
没有学SET吧?    用SET做会更简单.
作者: 彭越    时间: 2015-5-20 16:58
用Set好,省去了判断
作者: 小王泽哥    时间: 2015-5-20 17:27
set集合,简单到爆
作者: 嘎嘎鸭子    时间: 2015-5-20 23:25
学习了,楼主,继续加油啊
作者: 油炸电视剧    时间: 2015-5-21 15:37
求一个用set写的。
作者: Mr7952    时间: 2015-5-21 19:28
来看看。。
作者: wwb1105    时间: 2015-5-21 19:44
刚学基础  只能这样写啊  各位大神要求好高
作者: 马鹏涛    时间: 2015-5-21 19:49
set更简单点
作者: 喻忠航    时间: 2015-5-21 19:58
看到一楼有个美铝!!!!学习了!
作者: 守株人    时间: 2015-5-21 21:22
谢谢分享,学习了
作者: 快乐Anne    时间: 2015-5-21 21:40
学习一下
作者: zhangjnia    时间: 2015-5-21 22:06
不错不错,学习了
作者: 代码搬运1号    时间: 2015-5-21 23:58
受教了!!!!!
作者: hydrogen11    时间: 2015-5-22 11:59
用set集合保存会好点哦!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2