码迷,mamicode.com
首页 > 编程语言 > 详细

一个小算法

时间:2017-06-13 22:38:03      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:数字   ++   entryset   void   str   hashmap   class   stat   ati   

今天这里写一个算法

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

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

通过这个算法,可以让我们更好地理解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 }

 

一个小算法

标签:数字   ++   entryset   void   str   hashmap   class   stat   ati   

原文地址:http://www.cnblogs.com/jie9608/p/7003740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!