题目:
1、随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
PS:如果有两个数字出现的次数一样,则只需输出其中一个。
代码:
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
public class Ex1 {
public static void main(String[] args) {
Random random = new Random();
TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
for (int i = 0; i < 50; i++) {
int n = random.nextInt(6) + 30;
Integer count = map.get(n);
if (count == null) {
map.put(n, 1);
} else {
map.put(n, count + 1);
}
}
Set<Entry<Integer, Integer>> entrySet = map.entrySet();
int max = 0;
Entry<Integer, Integer> entryMax = null;
for (Entry<Integer, Integer> entry : entrySet) {
if (entry.getValue() > max) {
max = entry.getValue();
entryMax = entry;
}
System.out.println(entry.getKey() + ":" + entry.getValue());
}
System.out.println("出现次数最多的是" + entryMax.getKey() + ",出现了" + entryMax.getValue() + "次");
}
}