找出数组中重复元素最多的数

使用Map映射表实现:

import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Iterator;

public class Main {
    public static void main(String[] args){
    	String[] str = {"3","5","1","2","2","3","2","1","1","4","4","4"};
    	Map<String,Integer> map = new HashMap<String,Integer>();
    	for(int i=0;i<str.length;i++){
    		if(map.containsKey(str[i])){
    			map.put(str[i], map.get(str[i])+1);
    		}else{
    			map.put(str[i], 1);
    		}
    	}
    	System.out.println(findMaxCount(map));
    }
    
    public static String findMaxCount(Map<String,Integer> m){
    	StringBuffer max = new StringBuffer();
    	int num = 0;
    	String name;
    	int count;
    	Iterator<Entry<String, Integer>> iter = m.entrySet().iterator();
    	while(iter.hasNext()){
    		Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) iter.next();
    		name = entry.getKey();
    		count =entry.getValue();
    		System.out.println("key is:"+name+"----value:"+count);
    		if(count>num){
    			num = count;
    			max.delete(0, max.length());
    			max.append(name+" ");
    		}else if(count==num){
    			max.append(name+" ");
    		}
    	}
    	return max.toString();
    }
    
}

  结果:

找出数组中重复元素最多的数