标签:
初学JAVA,练习一下数组实现生成统计打印随机数和集合实现生成统计打印随机数
1 /** 2 * 随机生成50个数字(整数),第个数字的范围是【10,50】。统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它。打印时按照数字的升序排列。*/ 3 import java.util.Arrays; 4 public class RandomTest 5 { 6 public static void main(String[] args) 7 { 8 int tem = -1;//用于设置存放相同合并数值和数值出现次数的二维数组key变量 9 int[] array = new int[50];//生成存放50个随机数的数组 10 int[][] statistic = new int[2][50];//定义2行50列的二维数组,用于设置存放相同合并数值和数值出现次数 11 int maxcount = 0;//最大次数 12 //生成10-50之间的随机数,并存放于array数组中 13 for( int i = 0 ;i < array.length;i++) 14 { 15 array[i] = (int)(Math.random() * 41) + 10;//Math.random 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 16 } 17 18 //array数组排序 19 Arrays.sort(array); 20 21 //统计相同数值一共出现的次数并将相应的数值和出现次数存于二维数组statistic中 22 for(int val = 10;val < 50;val++) 23 { 24 int count = 0; 25 for(int x = 0; x < array.length; x++) 26 { 27 if(array[x] == val) 28 { 29 count = count+1; 30 } 31 } 32 if(count != 0) 33 { 34 tem = tem +1; 35 statistic[0][tem] = val; 36 statistic[1][tem] = count; 37 } 38 } 39 //显示排序后数组数值 40 for(int j = 0;j < array.length;j++) 41 { 42 System.out.print(array[j] + " "); 43 } 44 System.out.println(); 45 System.out.println("-------------------------------"); 46 //显示每个数值和出现的次数并打印出来 47 for(int a = 0; a < statistic[0].length;a++) 48 { 49 if(statistic[0][a] != 0) 50 { 51 System.out.println("数值(" + statistic[0][a] + ")一共出现了(" + statistic[1][a] + ")次!"); 52 } 53 } 54 //列示出现次数最多的数以及出现了多少次 55 //1、找出最大出现次数 56 // 57 int idx = 0; 58 for(int cot1 = 50 ; cot1 > maxcount ; cot1--) 59 { 60 for(int b = 0; b < statistic[0].length; b++) 61 { 62 if(statistic[1][b] == cot1) 63 { 64 maxcount = cot1;//如果statistic[1][b]出现次数等于cot1,将cot1的值赋给maxcount,这样就找出出现次数最大的次数。 65 } 66 } 67 } 68 //找出最大的数值并打印出现次数 69 System.out.println("----------------------------------------------------------"); 70 System.out.println("出现次数最多的数值为:"); 71 for(int i = 0; i < statistic[0].length; i++) 72 { 73 if(statistic[1][i] == maxcount) 74 { 75 System.out.print(statistic[0][i] + " ");//打印出出现次数最多的数值 76 } 77 } 78 System.out.println(); 79 System.out.println("一共出来了 " + maxcount + " 次!");//打印出现次数 80 81 } 82 }
1 import java.util.ArrayList; 2 import java.util.Collection; 3 import java.util.Collections; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.Map; 7 import java.util.Random; 8 import java.util.Set; 9 import java.util.TreeMap; 10 public class RandomOfCollection 11 { 12 /** 13 * 随机生成50个数字(整数),每个数字的范围是[10,50]; 统计每个数字出现的次数以及出现次数最多的数字与它的个数; 14 * 最后将每个数字及其出现次数按照升序方式打印出来; 15 * 16 * @author Breezedreams 17 * @param ranVal 生成范围是[10,50]的随机数; 18 * @param treeMap 存放随机数和出现次数(key=随机数;value=出现次数); 19 * @param list 存放出现次数最多的随机数; 20 * @param number 随机数出现次数; 21 * @param coll 获取treeMap中统计的出现次数(Collection类型); 22 * @param maxNum 获取coll中的最大出现次数; 23 */ 24 public static void main(String[] args) 25 { 26 Random ran = new Random(); 27 Map treeMap = new TreeMap();//存放随机数和出现次数(key=随机数;value=出现次数); 28 List list = new ArrayList();//存放出现次数最多的随机数; 29 /** 30 * 随机生成50个[10,50]的随机数并将随机数和出现次数存放于treeMap集合中*/ 31 System.out.println("生成的随机数分别为:"); 32 for (int i = 0; i < 50; i++) 33 { 34 Integer ranVal = new Integer(ran.nextInt(41) + 10); 35 System.out.println(ranVal); 36 if (treeMap.get(ranVal) == null) 37 { 38 treeMap.put(ranVal, new Integer(1)); 39 } 40 else 41 { 42 int number = ((Integer) treeMap.get(ranVal)).intValue() + 1; 43 treeMap.put(ranVal, new Integer(number)); 44 } 45 } 46 System.out.println("-------------------------------------------------"); 47 Set set = treeMap.entrySet();//获取treeMap包含的映射关系的 Set 视图(主要用于Iterator遍历) 48 Collection coll = treeMap.values();//获取出现次数; 49 Integer maxNum = (Integer)Collections.max(coll);//获取最大出现次数 50 /**打印随机数和出现次数并将出现次数最多的随机数增加到list集合当中;*/ 51 for (Iterator iter = (Iterator) set.iterator(); iter.hasNext();) 52 { 53 Map.Entry entry = (Map.Entry) iter.next(); 54 Integer key = (Integer) entry.getKey();//获取随机数 55 Integer val = (Integer) entry.getValue();//获取出现次数 56 System.out.println("数字:" + key + "出现了 " + val + " 次!"); 57 if(val.intValue() == maxNum.intValue()) 58 { 59 list.add(key); 60 } 61 } 62 System.out.println("---------------------------------------"); 63 /**打印出现次数最多的随机数以及出现次数*/ 64 for(Iterator iter = list.iterator(); iter.hasNext();) 65 { 66 System.out.println("出现次数最多的数值为:" + iter.next() ); 67 } 68 System.out.println(" 一共出现了 " + maxNum + "次"); 69 } 70 }
标签:
原文地址:http://www.cnblogs.com/CoolBreeze-SeclusionDream/p/4515325.html