首页 > 代码库 > 随机数字统计
随机数字统计
要求:
随机生成50个数字(整数),每个数字的范围是[10, 50],统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出 来,如果某个数字出现次数为0,则不要打印它。打印时按照数字的升序排列。
版本一:(使用数组实现)
import java.util.Random;public class HomeWork{ public static void main(String[] args) { int[] count = new int[50];//统计每个数字出现的次数 for(int i=0; i<50; i++) { int number = new Random().nextInt(41) + 10;//生成[10,50]之间的随机数 count[number-10]++; //充分利用数组下标提供的信息,利用下标信息得到具体的数字,而数组里面的值代表具体的数字出现的次数,这样,一个数组就搞定了两方面的需求。例如,count[0],count[1]分别代表10和11出现的次数,依次类推... } for(int i=0; i<count.length; i++) { if(count[i] != 0) { System.out.println((i+10)+"出现的次数是:"+count[i]); } } int max = count[0]; for(int i=0; i<count.length; i++)//找到那个最大的次数 { if(count[i] > max) { max = count[i]; } } for(int i=0; i<count.length; i++) { if(count[i] == max) { System.out.println("出现次数最多的数字是:"+(i+10)+",次数是:"+count[i]); } } }}/*在Eclipse中的输出结果是: 12出现的次数是:1 13出现的次数是:3 14出现的次数是:3 15出现的次数是:1 16出现的次数是:3 17出现的次数是:1 20出现的次数是:1 22出现的次数是:4 23出现的次数是:3 24出现的次数是:4 27出现的次数是:1 28出现的次数是:1 29出现的次数是:2 30出现的次数是:2 31出现的次数是:2 32出现的次数是:1 33出现的次数是:1 34出现的次数是:1 37出现的次数是:3 43出现的次数是:2 46出现的次数是:2 48出现的次数是:3 49出现的次数是:1 50出现的次数是:4 出现次数最多的数字是:22,次数是:4 出现次数最多的数字是:24,次数是:4 出现次数最多的数字是:50,次数是:4*/
版本二:(使用集合实现)
import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Random;import java.util.Set;import java.util.TreeMap;public class HomeWorkStd{ public static void main(String[] args) { Map map = new TreeMap();//存储数字及其出现的次数(key为数字,value数字为出现的次数)尝试HashMap map Random random = new Random(); for(int i=0; i<50; i++) { int number = random.nextInt(41) + 10; Integer in = new Integer(number); if(map.get(in) == null) { map.put(in, new Integer(1)); } else { int value = http://www.mamicode.com/((Integer)map.get(in)).intValue();":" + value); } System.out.println("出现最多次数为" + maxOccurs); System.out.println("这些数字分别是:"); for(Iterator iter=list.iterator(); iter.hasNext();) { System.out.println(iter.next()); } /*另一种方式 //找到最大的次数(自己实现) Collection coll = map.values(); int max = 0;//假设最大的次数为零 for(Iterator iter = coll.iterator(); iter.hasNext();) { Integer value = http://www.mamicode.com/(Integer)iter.next();"出现次数最多的数有:" + key + ",次数为:" + max); } } */ }}
版本三:(简化版,使用集合,利用泛型、自动装箱/拆箱技术)
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 StatisticRandomNumber{ public static void main(String[] args) { TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>(); Random random = new Random(); int temp; for(int i=0; i<50; i++) { temp = random.nextInt(41) + 10; if(map.get(temp) == null) map.put(temp, 1); else map.put(temp, map.get(temp) + 1); } Set<Map.Entry<Integer, Integer>> mapSet = map.entrySet(); for(Iterator<Map.Entry<Integer, Integer>> iter=mapSet.iterator(); iter.hasNext();) { Map.Entry<Integer, Integer> entry = iter.next(); System.out.println("Key:" + entry.getKey() + ", Value:" + entry.getValue()); } Collection<Integer> col = map.values(); int maxValue = http://www.mamicode.com/Collections.max(col);"出现最多次数为:" + maxValue); System.out.println("这些数字有:"); for(Iterator<Map.Entry<Integer, Integer>> iter=mapSet.iterator(); iter.hasNext();) { Map.Entry<Integer, Integer> entry = iter.next(); if(entry.getValue() == maxValue) { System.out.println(entry.getKey()); } } }}
随机数字统计
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。