Java程序设计实验

您所在的位置:网站首页 查找鼠标按键 Java程序设计实验

Java程序设计实验

2024-01-08 18:34| 来源: 网络整理| 查看: 265

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