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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.kxg_ArrayList;

  2. import java.util.ArrayList;
  3. import java.util.Random;
  4. public class RandomDemo {
  5.         public static void main(String[] args) {
  6.                 // 创建随机数对象
  7.                 Random r = new Random();

  8.                 // 创建存储随机数的集合,因为数组的长度是固定不可变的
  9.                 ArrayList<Integer> list = new ArrayList<Integer>();

  10.                 // 定义一个统计变量,控制循环次数
  11.                 int count = 0;

  12.                 while (count <= 10) {
  13.                         // 定义一个1-20之间的随机数
  14.                         int number = r.nextInt(20) + 1;

  15.                         // 如果集合中不包含这个随机数,就添加进去,并且统计变量加一次,如果包含就一直循环
  16.                         if (!list.contains(number)) {
  17.                                 list.add(number);
  18.                                 count++;
  19.                         }
  20.                 }
  21.                 System.out.println(list);
  22.         }
  23. }
复制代码


6 个回复

倒序浏览
学习了set类可以更简单的实现这个要求

  1. import java.util.HashSet;
  2. import java.util.Random;

  3. /*
  4. * 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
  5. *
  6. * 分析:
  7. *                 A:创建随机数对象
  8. *                 B:创建一个HashSet集合
  9. *                 C:判断集合的长度是不是小于10
  10. *                         是:就创建一个随机数添加
  11. *                         否:不搭理它
  12. *                 D:遍历HashSet集合
  13. */
  14. public class HashSetDemo {
  15.         public static void main(String[] args) {
  16.                 // 创建随机数对象
  17.                 Random r = new Random();

  18.                 // 创建一个Set集合
  19.                 HashSet<Integer> ts = new HashSet<Integer>();

  20.                 // 判断集合的长度是不是小于10
  21.                 while (ts.size() < 10) {
  22.                         int num = r.nextInt(20) + 1;
  23.                         ts.add(num);
  24.                 }

  25.                 // 遍历Set集合
  26.                 for (Integer i : ts) {
  27.                         System.out.println(i);
  28.                 }
  29.         }
  30. }
复制代码



点评

暂时还没有看到这里呢。  发表于 2015-7-14 14:41
回复 使用道具 举报
while (count <= 10) 中count<10才是10个随机数。因为默认值是0
回复 使用道具 举报
学习了。。。。。。。。。。。
回复 使用道具 举报
还在学习Set中 多谢分享
回复 使用道具 举报
包左不包右
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马