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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林以 中级黑马   /  2016-1-19 00:01  /  1455 人查看  /  20 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码


20 个回复

倒序浏览
长见识了,
回复 使用道具 举报
标准顶贴姿势
回复 使用道具 举报
标准顶贴姿势
回复 使用道具 举报
思路学习了
回复 使用道具 举报
学习了,思路很不错
回复 使用道具 举报
学习                              
回复 使用道具 举报
收藏~~~~~~~~~~~~~~~~
回复 使用道具 举报
四夕 中级黑马 2016-1-19 18:09:41
9#
涨姿势了...学习...
回复 使用道具 举报
呼雁潇 发表于 2016-1-19 11:41
学习了,思路很不错

一起学习
回复 使用道具 举报
kilin 中级黑马 2016-1-19 18:18:20
11#
学习了{:3_46:}
回复 使用道具 举报
收藏  顶
回复 使用道具 举报
学习、学习
回复 使用道具 举报
学习了
回复 使用道具 举报
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));
        }
}

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
h390 中级黑马 2016-1-22 17:59:27
16#
学习了。
回复 使用道具 举报
学习 学习
回复 使用道具 举报
学习了 ,厉害
回复 使用道具 举报
先收藏下
回复 使用道具 举报
我喜欢用增强for循环
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马