Java实现无重复抽签,人数可以自定义

Java代码实现抽签

import java.util.Random;
import java.util.Scanner;

public class ChouQianTest {
    public static void main(String[] args) {
        // 建立随机数对象
        Random random = new Random();

        // 定义一个字符串数组用于存放需要抽签的名单,这里我定义37,可以修改
        String[] name = new String[37];

        System.out.println("请输入抽签的名单:");

        // 接受键盘输入
        Scanner input = new Scanner(System.in);

        // 自动判断数组长度,录入
        for (int i = 0;i < name.length;i++)
        {
            //循环录入
            name[i] = input.next();
        }

        //输入想要抽取的人数
        System.out.print("请输入要抽的人数");
        Scanner input2 = new Scanner(System.in);
        int renShu = input2.nextInt();



        int index = 0;
        //定义新int数组shuZi
        int[] shuZi = new int[renShu];

        //选出想要选的人数
        while(index < renShu){

            int num = random.nextInt(name.length);

            //当不相同时,实现给shuZi数组赋值,给index自加一,打印输出name数组
            if(!judge(shuZi,num)){
                shuZi[index ++] = num;
                System.out.println(name[num]);
            }
        }
    }

    /**
     *
     * @param shuZi2 int数组
     * @param key 元素
     * @return true表示生成的随机数有重复
     */

     //此方法实现判断是否生成重复数,相等为true,不同为false
    public static boolean judge(int shuZi2[], int key){
        for(int i = 0;i < shuZi2.length;i ++){
            if(shuZi2[i] == key){
                return  true;
            }
        }
        return false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值