Java程序设计实验 |
您所在的位置:网站首页 › 查找鼠标按键 › Java程序设计实验 |
6、编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字。要求通过键盘输入数据,当输入为0时,表示结束输入。如: 如果输入的数据是2 3 40 3 54 -3 3 3 2 0,那么数字3的出现频率是最高的。如果出现频率最高的数字不是一个而是多个,则应该将它们全部输出。例如当数据是9 30 3 9 3 2 4时,3和9都出现了两次,3和9都应该输出。 提示:可以利用集合的元素不能重复这一特性。 • HashMap集合是Map接口的一个实现类,它存储的每一个元素都是键值对, 键和值均可以是任意类型。我们这里把数字存储到key中,value用来存储对应的频率 • foreach循环遍历HashMap()中的key和value 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用 Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键 值对也就是一个Entry), Map.Entry里面包含getKey()和getValue()方法 该方法适合容量大的时候使用(推荐) • 更多遍历Map的方法 public class S6_6 { public static void main(String[] args) { //HashMap集合是Map接口的一个实现类,它存储的每一个元素都是键值对,键和值均可以是任意类型。 //我们这里把数字存储到key中,value用来存储对应的频率 HashMap hashMap = new HashMap(); Scanner in = new Scanner(System.in); int num; System.out.println("请输入任意数量的数字(0作为停止的标志):"); while (true) { num = in.nextInt(); if (num == 0) break; if (!hashMap.containsKey(num)) { hashMap.put(num, 1); } else { int value = hashMap.get(num); value++; hashMap.put(num, value); } } int max = 0; //foreach循环遍历HashMap()中的key和value //由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。 //Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry) //Map.Entry里面包含getKey()和getValue()方法 //该方法适合容量大的时候使用(推荐) for (Map.Entry entry: hashMap.entrySet()) { if (entry.getValue() > max){ max = entry.getValue(); } } System.out.println("出现频率最大的数字是:"); for (Map.Entry entry: hashMap.entrySet()) { if (entry.getValue() == max){ System.out.println(entry.getKey()); } } } }7、选择合适的Map集合保存5个用户的用户名和密码,然后将这些键值对打印出来。 • 利用keySet遍历Map,二次取值(普遍使用) • 更多遍历Map的方法 public class S6_7 { public static void main(String[] args) { HashMap hashMap = new HashMap(); hashMap.put("spraing","boy"); hashMap.put("obession","feng"); hashMap.put("凌霄郭","guo"); hashMap.put("游标卡尺","shi"); //遍历Map的方法之一,普遍使用,二次取值 for(String key: hashMap.keySet()){ System.out.println("key = "+key+" value = "+hashMap.get(key)); } } }8、(选做)统计字符串中每个单词出现的次数,使用HashMap来实现。例如:“Today, We have a class of java, as we known, java is an object oriented programming language, and java is fun! wish you enjoy it!”,统计结果存储成以下形式: a-->1 an-->1 and-->1 as-->1…… is-->2 提示:使用String.split(("[ \n\t\r.,;:!?()]")方法进行分词。 该实验题目实际上跟上面的实验题目差不多,思路基本一致,用到的知识点也基本一致,对于字符串的分隔也已经给出方法,可以尝试独立完成一下。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |