日期:2014-05-20 浏览次数:20861 次
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class MaxAppear {
/**
* <p>功能描述:执行</p>
* @param intArray
* @return
* @author:jack
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
public List<Integer> go(int[] intArray) {
List<Integer> list = new ArrayList<Integer>();
Map<Integer, Integer> map = this.init(intArray);
for(int i : intArray) {
map.put(i, map.get(i)+1);
}
this.calc(map, list);
return list;
}
/**
* <p>功能描述:计算出现最多的数字,存到List中</p>
* @param map
* @param list
* @author:jack
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
private void calc(Map<Integer, Integer> map, List<Integer> list) {
Integer max = Integer.MIN_VALUE;
list.add(max);
for(Entry<Integer, Integer> entry : map.entrySet()) {
Integer key = entry.getKey();
Integer value = entry.getValue();
if(value>max) {
list.remove(max);
list.add(key);
max = value;
}else if(value==max) {
list.add(key);
}
}
}
/**
* <p>功能描述:把不重复的数字初始化到Map中</p>
* @param intArray
* @return
* @author:jack
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
private Map<Integer, Integer> init(int[] intArray) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
HashSet<Integer> set = new HashSet<Integer>();
for(int i : intArray) set.add(i);
for(int i : set) map.put(i, 0);
return map;
}
public static void main(String[] args) {
MaxAppear maxAppear = new MaxAppear();
int[] intArray = new int[]{3, 2, 5, 2, 3, 4, 2, 3 };
List<Integer> list = maxAppear.go(intArray);
System.out.println("出现频率最高的是:");
for(int i : list) {
System.out.print(i+" ");
}
}
}