版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

背景概述

在抽奖、点名、拆盲盒时我们都需要随机实现某些功能。所以,我们可借助于Java中的随机数来进行相应模块的开发。

第一版

要求如下:

  • 1、数组中存放名字
  • 2、随机从数组中选择1个名字

核心代码:

    public static void test1(){String[] namesArray = {"王小刚","李思思","杨倩倩","李大勇","姚期名","陶冰冰"};int length = namesArray.length;// 进行1次随机选择Random random = new Random();int number = random.nextInt(length);String name = namesArray[number];System.out.println("被选中的是:"+name);}

测试结果:

第二版

要求如下:

  • 1、数组中存放名字
  • 2、随机从数组中选择10个名字
  • 3、请输出出现次数最多的名字

核心代码:

ComparatorImpl类,代码如下:

import java.util.Comparator;
import java.util.Map;
/*** 本文作者:谷哥的小弟* 博客地址:http://blog.csdn.net/lfdfhl*/
public class ComparatorImpl implements Comparator<Map.Entry<String, Integer>> {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {int result = o1.getValue()-o2.getValue();return result;}
}

测试方法,代码如下:

 public static void test2(){String[] namesArray = {"王小刚","李思思","杨倩倩","李大勇","姚期名","陶冰冰"};int length = namesArray.length;HashMap<String,Integer> hashMap = new HashMap<>();// 随机进行10次选择for (int i=0;i<10;i++){Random random = new Random();int number = random.nextInt(length);String name = namesArray[number];System.out.println("被选中的是:"+name);Integer counter = hashMap.get(name);if(counter==null){hashMap.put(name,1);}else{hashMap.put(name,counter+1);}}System.out.println("------------------------");Set<Map.Entry<String, Integer>> entrySet = hashMap.entrySet();Iterator<Map.Entry<String, Integer>> iterator = entrySet.iterator();while(iterator.hasNext()){Map.Entry<String, Integer> entry = iterator.next();String key = entry.getKey();Integer value = entry.getValue();System.out.println(key+"被选中"+value+"次");}System.out.println("------------------------");//排序前对EntrySet进行遍历List<Map.Entry<String, Integer>> list = new ArrayList<>(entrySet);for (int i = 0; i < list.size(); i++) {Map.Entry<String, Integer> entry = list.get(i);System.out.println(entry);}System.out.println("------------------------");// 利用comparator依据Value对EntrySet进行排序ComparatorImpl comparator = new ComparatorImpl();Collections.sort(list, comparator);//排序后对EntrySet进行遍历for (int i = 0; i < list.size(); i++) {Map.Entry<String, Integer> entry = list.get(i);System.out.println(entry);}System.out.println("------------------------");// 获取出现次数最多的名字int size = list.size();Map.Entry<String, Integer> entry = list.get(size - 1);String name = entry.getKey();System.out.println(name);}

测试结果:

第三版

要求如下:

  • 1、在本地txt文件中存放多个名字
  • 2、请随机选择10个名字
  • 3、请输出出现次数最多的名字

核心代码:

第四版

要求如下:

  • 1、在本地Excel文件中存放多个名字
  • 2、请随机选择10个名字
  • 3、请输出出现次数最多的名字

核心代码:

Java实现抽奖幸运儿相关推荐

  1. java实现抽奖游戏,java实现抽奖功能解析

    本文实例为大家分享了java实现抽奖功能的具体代码,供大家参考,具体内容如下 抽一个: 输入抽奖人数,生成随机数字进行抽奖. 比如:楼主抽幸运儿送游戏,选择前100楼抽取一个幸运儿. import j ...

  2. 抽奖功能的实现java,java实现抽奖功能解析

    本文实例为大家分享了java实现抽奖功能的具体代码,供大家参考,具体内容如下 抽一个: 输入抽奖人数,生成随机数字进行抽奖. 比如:楼主抽幸运儿送游戏,选择前100楼抽取一个幸运儿. import j ...

  3. java实现抽奖游戏_Java实现游戏抽奖算法

    常用抽奖算法对比 基础的游戏抽奖算法通常要求实现在指定奖品的集合中,每个奖品根据对对应概率进行抽取.个人了解的主要有以下几中抽奖算法: 随机数一一对应 算法思想 这种算法思想最为简单.将n个奖品编号0 ...

  4. 抽奖功能java开发_基于Java实现抽奖系统

    摘要:这篇Java开发技术栏目下的"基于Java实现抽奖系统",介绍的技术点是"抽奖系统.Java.抽奖.基于.系统.实现",希望对大家开发技术学习和问题解决有 ...

  5. Java 实现抽奖的两种方式

    Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...

  6. java幸运抽奖系统_java实现幸运抽奖系统

    本文实例为大家分享了java实现抽奖系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; public class luckyDraw { public sta ...

  7. Java实现抽奖功能

    这篇文章主要为大家详细介绍了Java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现抽奖功能的具体代码,供大家参考,具体内容 ...

  8. 用Java实现抽奖的程序

    抽奖程序的实现思路: 定义奖品列表和奖品对应的概率列表 生成一个随机数,根据随机数的大小判断中了哪个奖品 输出中奖结果 下面是用Java实现抽奖程序的代码示例: import java.util.Ra ...

  9. java swing 抽奖程序_java swing抽奖程序

    今天比较闲,自己写了个简单的抽奖程序,很久没有用swing了,搞了半天,呵呵. 1.截图效果如下: 2.点击"开始"按钮,"幸运儿是:"区域不停滚动显示人员姓名 ...

最新文章

  1. 详解sentinel:分布式系统的流量防卫兵
  2. 产品待办列表如何精化?
  3. 千万不要在深夜提交代码
  4. androidsdcard挂载目录_获取android手机的自带存储路径和sdcard存储路径
  5. 停就删稿!这个“可怕”的 GitHub 开源项目值得一试
  6. Linux上使用Cron启动定时任务
  7. java 标题栏_如何更改java应用程序标题栏默认图标
  8. VSC为_LCC 和 VSC (MMC) 的底层特性区别
  9. 计算机网络故障检测,计算机网络故障处理
  10. OC容器——图书馆 .h 文件
  11. SQL Server之dbo
  12. [work] Python - 字典(dict)删除元素
  13. 三本郑大计算机考研,三本跨专业考研985,初试排名第一,结果竟被导师拒绝!寒心呀!...
  14. 【CSDN软件工程师能力认证学习精选】Python网络编程(socket编程)
  15. ArcBlock ⑦ 月报 | 产品一天半迭代1个版本 全球开发者社区建设启动
  16. 常用库函数的学习笔记
  17. 零基础开发一款微信小程序商城
  18. echarts环形图内部圆,外部圆形以及阴影设置
  19. 金融数字化转型落地实践,腾讯云数据库的三问三答
  20. OCR如何识别图片中的文字?

热门文章

  1. 南师大学生用考研Style鼓舞士气
  2. 苹果公司雇佣前ATI图形芯片设计师
  3. CS231n课程笔记翻译:神经网络笔记3(下)
  4. 二维数组及其二维数组的动态内存分配
  5. 公司篮球赛比赛规则策划
  6. 华为防火墙做单臂路由_防火墙做单臂路由实现VLAN间通信
  7. 抢注过期域名的几大注意事项
  8. 电脑未同步iCloud钥匙串
  9. 【BZOJ 3884】上帝与集合的正确用法【欧拉定理】【剧毒题】
  10. Linux入侵检测系统IDS的安装与配置