本文主要是介绍[Java][Map]基于Random的随机选景点前往练习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目: 某个班级有80个学生,需要组成参加秋游活动 班长提供了四个景点(A,B,C,D) 每名学生只能选择一个景点 请统计出哪个景点想去的人数最多 逻辑: 1.80个学生,一个一个添加显然不现实,因此我们采取随机数生成学生的投票选择 2.景点和投票数需要产生关联,因此我想到Map(映射)的思想->将景点和投票数关联起来 3.直接遍历映射很麻烦->简化思路->转化为Set<集合>->利用Iterator(迭代器)遍历 使用到的API: 1.Random随机数 2.HashMap创建基于HashTable的映射 3.Map中的基础操作 .put替换机制 .get获取方法 4.for循环依次进行学生选择(80个) 5.巧妙利用switch来为不同学生的选择提供分支结果 6.Set集合与泛型的知识
import java.util.*;public class Main{public static void main(String[] args){/*题目:某个班级有80个学生,需要组成参加秋游活动班长提供了四个景点(A,B,C,D)每名学生只能选择一个景点 请统计出哪个景点想去的人数最多逻辑:1.80个学生,一个一个添加显然不现实,因此我们采取随机数生成学生的投票选择2.景点和投票数需要产生关联,因此我想到Map(映射)的思想->将景点和投票数关联起来3.直接遍历映射很麻烦->简化思路->转化为Set<集合>->利用Iterator(迭代器)遍历使用到的API:1.Random随机数2.HashMap创建基于HashTable的映射3.Map中的基础操作 .put替换机制 .get获取方法4.for循环依次进行学生选择(80个)5.巧妙利用switch来为不同学生的选择提供分支结果6.Set集合与泛型的知识*///定义一个数组来储存四个景区String[] arr = {"A","B","C","D"};//利用随机数来进行80人的投票HashMap<String,Integer> vote = new HashMap<>();vote.put("A",0);vote.put("B",0);vote.put("C",0);vote.put("D",0);Random r = new Random();int counta =0;int countb =0;int countc =0;int countd =0;for(int i=0;i<80;i++){int index = r.nextInt(arr.length);switch (index){case 0:{counta++;vote.put(arr[index],counta);break;}case 1:{countb++;vote.put(arr[index],countb);break;}case 2:{countc++;vote.put(arr[index],countc);break;}case 3:{countd++;vote.put(arr[index],countd);break;}}}Set<String> key =vote.keySet();Iterator<String> it = key.iterator();while(it.hasNext()){String park = it.next();Integer count = vote.get(park);System.out.println("去往"+park+"的投票人数为"+count);}}
}
这篇关于[Java][Map]基于Random的随机选景点前往练习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!