黑马程序员技术交流社区

标题: 【记录】代码练习-产生10个1-20之间不重复随机数 [打印本页]

作者: Kevin.Kang    时间: 2015-7-14 11:42
标题: 【记录】代码练习-产生10个1-20之间不重复随机数
  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. }
复制代码



作者: 蔡锐    时间: 2015-7-14 14:28
学习了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-11-16 09:44
while (count <= 10) 中count<10才是10个随机数。因为默认值是0
作者: ln0491    时间: 2015-11-16 12:35
学习了。。。。。。。。。。。
作者: z13561291    时间: 2015-11-16 15:11
还在学习Set中 多谢分享
作者: lvcj    时间: 2015-11-16 16:42
包左不包右




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