一个小算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个小算法相关的知识,希望对你有一定的参考价值。

今天这里写一个算法

给你一组数字,然后求出这组数中出现次数最多的数以及出现最多的次数。

下面就直接上代码了,主要的注释都会在里面说明。

通过这个算法,可以让我们更好地理解map集合,代码中我写了两种遍历map集合的方法,虽然说掌握一种就可以了,但是毕竟技多不压身,多学点东西还是很好的,尤其是第二种,更应该好好理解一下了,别的不说了,直接上代码。

 1 package test;
 2 
 3 import java.util.Collection;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.Map;
 7 import java.util.Set;
 8 
 9 public class Test1 {
10 
11     public static void main(String[] args) {
12         
13         //构建一个map集合
14         //key值存储数组中的元素
15         //value值存储数组中同一元素出现的次数
16         Map<Integer,Integer> map=new HashMap<>();
17         int[] array={1,3,4,7,2,3,3,5,6};
18         for(int i=0;i<array.length;i++)
19         {
20             //若存在相同的元素,则对value值加1
21             if(map.containsKey(array[i]))
22             {
23                 int tmp=map.get(array[i]);
24                 map.put(array[1], ++tmp);
25             }
26             //否则直接将元素添加到map集合中
27             else{
28                 map.put(array[i], 1);
29             }
30         }
31         
32         Collection<Integer> count=map.values();
33         //找到map的value中最大的数字,也就是数组中数字出现最多的次数
34         int maxCount=Collections.max(count);
35         int maxNumber=0;
36         for(Map.Entry<Integer, Integer> entry:map.entrySet())
37         {
38             //得到value为maxCount的key,也就是数组中出现次数最多的数字
39             if(maxCount==entry.getValue())
40             {
41                 maxNumber=entry.getKey();            
42             }
43         }
44         //Set<Integer> key=map.keySet();
45         for(Integer key:map.keySet())
46         {
47             int value=map.get(key);
48             if(value==maxCount)
49             {
50                 System.out.println("出现次数最多的数字为:"+key);
51                 System.out.println("出现的次数为"+value);
52             }
53         }
54         System.out.println("出现次数最多的数字为:"+maxNumber);
55         System.out.println("出现的次数为:"+maxCount);
56     }
57 }

 

以上是关于一个小算法的主要内容,如果未能解决你的问题,请参考以下文章

片段(Java) | 机试题+算法思路+考点+代码解析 2023

Android小部件,启动一个片段?

C语言100个经典算法源码片段

VS中添加自定义代码片段——偷懒小技巧

android小知识点代码片段

微信小程序代码片段分享