600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Java实现抽奖幸运儿

Java实现抽奖幸运儿

时间:2020-12-21 18:14:58

相关推荐

Java实现抽奖幸运儿

版权声明

作者:谷哥的小弟作者博客地址:/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 parator;import java.util.Map;/*** 本文作者:谷哥的小弟* 博客地址:/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、请输出出现次数最多的名字

核心代码:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。