找出数组中出现次数最多的那个数

package com.wh.interview;

import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class SearchMuch {
public static void main(String[] args) {
int[] arr = {4, 7, 1, 4, 9, 3, 2, 4, 15, 8, 6, 7, 3, 5, 10, 8};
searchMuch(arr);
}
public static void searchMuch(int arr[]){
//创建一个hashMap用来存储数组,key是数组值,value是出现的次数
HashMap hashMap=new HashMap();
// 循环将数组中的值放进map中,并做判断,如果第一次出现,value值为1,再出现+1
int length=arr.length;
for (int i = 0; i < length - 1; i++) {
int k=arr[i];
if (hashMap.containsKey(k)){
int count=hashMap.get(k);
hashMap.put(k,count+1);
}else{
hashMap.put(k,1);
}
}

// 创建一个集合,用来接收map中的value值,取最大的就是出现次数最多的,并且通过这个value找到对应的key
Collection collection=hashMap.values();
int maxCount=Collections.max(collection);
int maxNumber=0;
// foreach遍历hashMap,找到最大的value,即出现次数最多的
for (Map.Entry entry : hashMap.entrySet()) {
if (entry.getValue()==maxCount){
maxNumber=entry.getKey();
}
}
System.out.println("次数最多的是"+maxNumber);
System.out.println("出现了"+maxCount+"次");
}
}

你可能感兴趣的:(找出数组中出现次数最多的那个数)