小明公司有1000人,今年年会举行抽奖活动,一次抽出三等奖4名,二等奖2名,一等奖1名

本文介绍了如何使用Java编程实现一个抽奖程序,确保每个奖项的抽取不重复。通过生成随机数并利用Set集合的去重特性,抽取了7个独特的奖项。程序包括两种输出方式,一种使用迭代器,另一种通过List的get方法。此程序适用于公司年会或其他类似场合的抽奖活动。
摘要由CSDN通过智能技术生成

小明公司有1000人,今年年会举行抽奖活动,一次抽出三等奖4名,二等奖2名,一等奖1名,每个人不能重复中奖。请帮助小明编写抽奖程序,抽奖名单(员工按1~1000依次编号),输出结果举例:

三等奖:666,365,12,999
二等奖:5,520
一等奖:888

思路:就是1-1000内不重复的随机抽取7个数

随机数:Math.random()*1000+1
不重复:想到了Set的去重原理
可以创建一个Set集合
Set set = new HashSet();

然后把随机数存储到Set集合中,直到Set的长度等于7为止,这样Set里面就得到了7个不同的数

方法一:

public static void main(String[] args) {
        Set set = new HashSet();
        while (set.size()<7){
            int num = (int) (Math.random()*1000+1);//获取1-1000的随机数
            set.add(num);//添加到Set集合中
        }
        
        //方式一:使用迭代器遍历输出
        Iterator iterator = set.iterator();
        int i=0;
        while (iterator.hasNext()){
            if (i<3){
                if (i==0){
                    System.out.print("三等奖:");
                }
                System.out.print(" "+iterator.next());
            }
            else if (i<5){
                if (i==4){
                    System.out.println();
                    System.out.print("二等奖:");
                }
                System.out.print(" "+iterator.next());
            }else{
                if (i==6){
                    System.out.println();
                    System.out.print("一等奖:");
                }
                System.out.print(" "+iterator.next());
            }
            i++;
        }
    }

输出结果:
三等奖: 241 276 597 39
二等奖: 808 825
一等奖: 253

方法二:

 public static void main(String[] args) {
        Set<Integer> set = new HashSet();
        while (set.size()<7){
            int num = (int) (Math.random()*1000+1);
            set.add(num);
        }
        //方式二:用list的常用方法get(int index)下标查询输出
        //把Set转化为List
        ArrayList<Integer> list = new ArrayList<>(set);
        System.out.print("三等奖:");
        System.out.println(list.get(0)+","+list.get(1)+","+list.get(2)+","+list.get(3));
        System.out.print("二等奖:");
        System.out.println(list.get(4)+","+list.get(5));
        System.out.print("一等奖:");
        System.out.println(list.get(6));
    }
  • 两种方式只是输出的方式不同,Set集合存储的是无序的,不重复的,在获取不重复的元素的时候可以用Set集合存储
  • ArrayList集合,存储的是有序 可重复的,由Array所支持的一种索引数据结构(底层是数组结构),可以通过下标随机访问,提供丰富的方法。

Collection接口的子接口List接口和Set接口

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

848698119

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值