题目描述:随机产生50个整数,位于[10,50], 统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
public class MapTest5
{
public static void main(String[] args)
{
//利用TreeMap的有序性,存储数字及其出现次数,key为数字,value为次数
TreeMap<Integer, Integer> map = new TreeMap<>();
//用来存放出现最大次数的数字
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for(int i = 0; i < 40; i++)
{
int num =random.nextInt(41) + 10;
if (map.get(num) == null)
{
map.put(num, 1);
}
else
{
int count = map.get(num);
map.put(num, count + 1);
}
}
//利用map.value()方法得到值得集合
Collection<Integer> values = map.values();
//然后利用Collections.max()得到值中的最大值,即出现的最大次数
Integer maxValue =Collections.max(values);
//遍历map
Set<Map.Entry<Integer, Integer>> set = map.entrySet();
for(Iterator<Map.Entry<Integer, Integer>> iterator = set.iterator(); iterator.hasNext();)
{
Map.Entry<Integer, Integer> entry = iterator.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
//保存出现最大次数的数字
if(value.equals(maxValue))
list.add(key);
System.out.println(key + "的出现次数为:" + value);
}
System.out.println("出现最多的次数为:" + maxValue);
System.out.print("这些数字分别是:");
for(Iterator<Integer> iterator = list.iterator(); iterator.hasNext();)
{
System.out.print(iterator.next() + " ");
}
}
}
网友评论