生成0-100之间的200个随机整数,并统计各个数出现的次数和频率(用XX.X%表示)。
0==〉10次==〉XX.X%
1==〉20次==〉XX.X%
。。。。。。
用HashMap实现。
public class Test1 {
public static void main(String[] args) {
HashMap<Integer, Integer> hasHMap = new HashMap<>();
//产生200个随机整数并赋值
for(int i=0; i<200; i++){
int random = (int)(Math.random()*100);
if(hasHMap.keySet().contains(random)){
hasHMap.put(random, hasHMap.get(random)+1); //替换旧值
}else{
hasHMap.put(random, 1);
}
}
//获取格式化对象
NumberFormat nt = NumberFormat.getPercentInstance();
//设置百分数精确度2即保留两位小数
//nt.setMinimumIntegerDigits(2); //整数的最小位
nt.setMinimumFractionDigits(1); //小数的最小位
//遍历集合 ,求各个值出现的次数和频率
for (Integer set : hasHMap.keySet()) {
double f = (double)hasHMap.get(set)/200;
System.out.println(set+": "+hasHMap.get(set)+
" 频率: "+nt.format(f));
}
}
}