首页 > 代码库 > 数组中出现最多的数,以及接口 Map.Entry<K,V>
数组中出现最多的数,以及接口 Map.Entry<K,V>
1 package test.tools; 2 3 import java.util.Collection; 4 import java.util.Collections; 5 import java.util.HashMap; 6 import java.util.Map; 7 8 public class TestArr { 9 10 public static void MaxCount(int[] arr) { 11 Map<Integer, Integer> map = new HashMap<Integer,Integer>(); 12 for(int i=0; i<arr.length; i++) { 13 //数组中已经出现此数字,次数加1 14 if(map.containsKey(arr[i])){ 15 int count = map.get(arr[i]); 16 /*HashMap不允许key重复*/ 17 //map.remove(arr[i]); 18 map.put(arr[i], count+1); 19 }else{ 20 //数字首次出现,次数设置为1 21 map.put(arr[i], 1); 22 } 23 } 24 System.err.println(map); 25 Collection<Integer> collection = map.values(); 26 // 找出map的value中最大值 27 int maxCount = Collections.max(collection); 28 int num = 0; 29 for(Map.Entry<Integer, Integer> entry : map.entrySet()){ 30 //得到value为maxCount的key,也就是数组中出现次数最多的数字 31 if(entry.getValue() == maxCount){ 32 num = entry.getKey(); 33 } 34 } 35 System.out.println("出现次数最多的数:" + num); 36 System.out.println("共出现" + maxCount + "次"); 37 38 } 39 40 public static void main(String[] args) { 41 int[] arr = {1,2,3,4,1,1,1,2,2,5,4,6,7,8,3,3,5,5,5,5,1,1,1}; 42 MaxCount(arr); 43 } 44 }
结果:
{1=7, 2=3, 3=3, 4=2, 5=5, 6=1, 7=1, 8=1}
出现次数最多的数:1
共出现7次
数组中出现最多的数,以及接口 Map.Entry<K,V>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。