今天這裡寫一個演算法 給你一組數字,然後求出這組數中出現次數最多的數以及出現最多的次數。 下麵就直接上代碼了,主要的註釋都會在裡面說明。 通過這個演算法,可以讓我們更好地理解map集合,代碼中我寫了兩種遍歷map集合的方法,雖然說掌握一種就可以了,但是畢竟技多不壓身,多學點東西還是很好的,尤其是第二種, ...
今天這裡寫一個演算法
給你一組數字,然後求出這組數中出現次數最多的數以及出現最多的次數。
下麵就直接上代碼了,主要的註釋都會在裡面說明。
通過這個演算法,可以讓我們更好地理解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 }