A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下面写了俩个方法,有问题指出来,有更简单的方法欢迎分享
  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. }
复制代码


27 个回复

倒序浏览
学习了,楼主加油
回复 使用道具 举报
为何不用 set呢? set 有唯一性, ArrayList 可以重复, 还得判断 , 用set 循环装数据 , 直到set size 变成10就是 不同的10个数了.
回复 使用道具 举报 1 0
香草芭芙 发表于 2015-5-19 22:16
为何不用 set呢? set 有唯一性, ArrayList 可以重复, 还得判断 , 用set 循环装数据 , 直到set size 变成10 ...

谢谢分享
回复 使用道具 举报
青春印记深圳 来自手机 中级黑马 2015-5-20 01:45:04
报纸
直接用上系统当然时间就好了吧
回复 使用道具 举报
guoyangpeng 来自手机 中级黑马 2015-5-20 06:53:04
地板
不错,学习了
回复 使用道具 举报
qian0217wei 来自手机 高级黑马 2015-5-20 09:08:48
7#
我就来看看!其实觉得楼主做的太复杂了
回复 使用道具 举报
mmakun 中级黑马 2015-5-20 10:24:30
8#
过来学习下
回复 使用道具 举报
繁复 中级黑马 2015-5-20 10:32:12
9#
数组那个方法我觉得直接用二重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:00
10#
恩 还不错
回复 使用道具 举报
只是看看~~~
回复 使用道具 举报
好强大的赶脚
回复 使用道具 举报
感觉用TreeSet更好
回复 使用道具 举报
LZ学了Set吗?
回复 使用道具 举报
没有学SET吧?    用SET做会更简单.
回复 使用道具 举报
用Set好,省去了判断
回复 使用道具 举报
set集合,简单到爆
回复 使用道具 举报
学习了,楼主,继续加油啊
回复 使用道具 举报
求一个用set写的。
回复 使用道具 举报
来看看。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马