黑马程序员技术交流社区

标题: 一道入学考试题 [打印本页]

作者: 林以    时间: 2016-1-19 00:01
标题: 一道入学考试题
  1. package com.itheima;

  2. import java.util.HashSet;
  3. import java.util.Iterator;
  4. import java.util.Random;

  5. /**
  6. * 题目: 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
  7. *
  8. */

  9. /**
  10. * 分析题干: 十个 不重复 随机数
  11. * 基本思路: 利用HashSet的唯一性,往里面装入,再取出 重点: 怎么是控制循环的次数
  12. *
  13. * 具体思路:
  14. * 1.创建Random类实例 ,产生随机数
  15. * 2.用集合的长度作为循环的条件,如果集合中的元素不够10个,那就继续添加
  16. * 3.拿到集合的迭代器,遍历输出符合条件的元素
  17. *
  18. */
  19. public class Test8 {

  20.         public static void main(String[] args) {
  21.                 // 创建Random类实例
  22.                 Random random = new Random();

  23.                 // 创建一个HashSet集合
  24.                 HashSet<Integer> hs = new HashSet<Integer>();

  25.                 //如果集合中的元素少于十个,循环继续,往集合添加元素
  26.                 while (hs.size() != 10) {
  27.                         int num = random.nextInt(20) + 1;//产生1-20之间的随机数
  28.                         hs.add(num);//往集合里添加元素,唯一性
  29.                 }

  30.                 //获取迭代器
  31.                 Iterator<Integer> it = hs.iterator();

  32.                 //遍历输出
  33.                 while (it.hasNext()) {
  34.                         System.out.println(it.next());
  35.                 }
  36.         }

  37. }
复制代码



作者: zhanganping    时间: 2016-1-19 00:08
长见识了,
作者: hansnowqiang    时间: 2016-1-19 08:54
标准顶贴姿势
作者: hansnowqiang    时间: 2016-1-19 08:55
标准顶贴姿势
作者: qt520    时间: 2016-1-19 10:47
思路学习了
作者: 呼雁潇    时间: 2016-1-19 11:41
学习了,思路很不错
作者: hnsfxyzl    时间: 2016-1-19 12:22
学习                              
作者: fury1994    时间: 2016-1-19 17:27
收藏~~~~~~~~~~~~~~~~
作者: 四夕    时间: 2016-1-19 18:09
涨姿势了...学习...
作者: 林以    时间: 2016-1-19 18:15
呼雁潇 发表于 2016-1-19 11:41
学习了,思路很不错

一起学习
作者: kilin    时间: 2016-1-19 18:18
学习了{:3_46:}
作者: PeterPang    时间: 2016-1-19 23:37
收藏  顶
作者: 曹德然    时间: 2016-1-19 23:48
学习、学习
作者: shihao    时间: 2016-1-20 00:04
学习了
作者: olivec    时间: 2016-1-22 16:19
import java.util.Arrays;
import java.util.Random;

public class Test1 {

        public static void main(String[] args) {
                Random random=new Random();
                boolean[]flags=new boolean[20];
                int[]arr=new int[10];
                for (int i = 0; i < arr.length; i++) {
                        int n;
                        do {
                                n=random.nextInt(20);
                        } while (flags[n]);
                        arr[i]=n+1;
                        flags[n]=true;
                }
                System.out.println(Arrays.toString(arr));
        }
}

作者: h390    时间: 2016-1-22 17:59
学习了。
作者: 曹德然    时间: 2016-1-23 21:40
学习 学习
作者: 悠悠天下    时间: 2016-1-23 22:00
学习了 ,厉害
作者: zhenufo    时间: 2016-1-23 22:21
先收藏下
作者: black习    时间: 2016-1-23 23:02
我喜欢用增强for循环
作者: 我爱睡觉    时间: 2016-1-23 23:21
15楼 是用了图吗




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