java程序 循环n次,随机生成m以内 的整数,存放到集合中,统计各个随机数出现的次数,并按次数
java程序循环n次,随机生成m以内的整数,存放到集合中,统计各个随机数出现的次数,并按次数降序输出...
java程序 循环n次,随机生成m以内 的整数,存放到集合中,统计各个随机数出现的次数,并按次数降序输出
展开
展开全部
// java程序循环n次,随机生成m以内的整数,存放到集合中,统计各个随机数出现的次数,并按次数降序输出
// m 和 n 的值自定义
// 生成的整数范围
private static final int M = 5;
// 循环的次数
private static final int N = 10;
/**
* 随机生成m以内的整数
*/
public static int getRandomNumber() {
return (int) (Math.random() * M);
}
/**
* 循环n次,把生成的整数存在HashMap中 key -- 整数,value -- 整数出现的次数
*/
public static Map getNumberAndTime() {
Map numberAndTime = new HashMap();
System.out.println("------------------输出随机数------------------");
for (int i = 0; i < N; i++) {
int temp = getRandomNumber();
System.out.print(temp + "\t");
// 判断整数是否出现过
if (numberAndTime.get(temp) != null ) {
// 已出现,value + 1
numberAndTime.put(temp, Integer.parseInt(numberAndTime.get(temp).toString()) + 1);
} else {
// 未出现,那本次出现的整数就是第一次
numberAndTime.put(temp, 1);
}
}
return numberAndTime;
}
public static void main(String[] args) {
Map map = getNumberAndTime();
System.out.println("\r" + "------------------输出每个整数出现的次数------------------");
// 迭代
for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) {
Integer number = (Integer) iterator.next();
System.out.println("整数" + number + "出现的次数:" + map.get(number) + "次");
}
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
// 排序
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
public int compare(Map.Entry<Integer, Integer> e1,
Map.Entry<Integer, Integer> e2) {
// 降序
return (e2.getValue() - e1.getValue());
// return (e1.getValue() - e2.getValue());(升序)
}
});
System.out.println("------------------排序后输出------------------");
for (int i = 0; i < list.size(); i++) {
Entry<Integer, Integer> entry = list.get(i);
System.out.println("整数" + entry.getKey() + "出现的次数:" + entry.getValue() + "次");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |