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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-28 07:22  /  809 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.util;

import java.util.HashSet;
import java.util.Random;

/**
* 随机点名程序
* @author SuperHan
*
*/
public class RandomCall {

        public static void main(String[] args) {
                // 需要获取元素的数组,存储所有同学名字
                String[] names = {"姓名"};
               
                // 创建HashSet集合,因为Set集合元素唯一
                HashSet<String> hs = new HashSet<String>();
               
                // 要随机点名的人数
                int num = 5;
               
                // 集合中存储的长度小于定义的长度,就获取
                while (hs.size() < num) {
                        // 抽取一个方法,实现随机获取数组中的一个元素
                        hs.add(getOneRandom(names));
                }
               
                // 遍历集合,得到中奖的人
                for (String s : hs) {
                        System.out.println(s);
                }

        }

        /**
         * 随机获取数组中一个元素
         * @param names 存储元素的数组
         * @return 该数组中的一个随机元素
         */
        public static String getOneRandom(String[] names) {
                // 随机数类
                Random r = new Random();
                // 通过随机获取[0, 数组长度)的一个随机索引
                int index = r.nextInt(names.length);
                // 根据这个随机索引,获取该索引上的元素 -- 查表法
                return names[index];
        }

}

1 个回复

倒序浏览
魏志林 来自手机 中级黑马 2015-12-28 07:49:36
沙发
如果随机数重复了怎么办
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马