题目:

/*
* 随机生成50个数字(整数),每个数字的范围是10,50,统计每个
* 数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字
* 及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它,
* 打印进按照数字的升序排列。
*/

第一种初步实现:

  1. public class ExerciseRandom 
  2.     public static void main(String[] args) 
  3.     { 
  4.         final int arraylength = 50;    //column 
  5.         final int arrayrow = 2;        // Row 
  6.         int[][] random = new int[arraylength][arrayrow]; 
  7.  
  8.         for(int i=0;i<arraylength;i++) 
  9.         { 
  10.             random[i][0] = randm(10,50); 
  11.         } 
  12.  
  13.         random = bubbleSort(random); 
  14.         countx(random); 
  15.             printArray(random); 
  16.     } 
  17.      
  18.     //生成min到max之间的随机数,也可以使用util.Random方法 
  19.     public static int randm(int min,int max) 
  20.     { 
  21.         int m = (int)Math.rint(Math.random()*(max-min)+min); 
  22.         return m; 
  23.     } 
  24.     //冒泡排序 
  25.     public static int[][] bubbleSort(int[][] array) 
  26.     { 
  27.         boolean isswap=false
  28.         for(int i=0;i<array.length-1;i++) 
  29.         { 
  30.             for(int j=0;j<array.length-i-1;j++) 
  31.             { 
  32.                 if( array[j][0] > array[j+1][0]) 
  33.                 { 
  34.                     int temp = array[j][0]; 
  35.                     array[j][0] = array[j+1][0]; 
  36.                     array[j+1][0] = temp; 
  37.                     isswap = true
  38.                 } 
  39.             } 
  40.             if (isswap == false
  41.                 return array; 
  42.         } 
  43.  
  44.         return array; 
  45.     } 
  46.      
  47.     //统计数组array中的值的出现次数 
  48.     public static void countx(int[][] array) 
  49.     { 
  50.         for(int i=0;i<array.length;i++) 
  51.         { 
  52.             for(int m=i;m<array.length;m++) 
  53.             { 
  54.                 if(array[i][0] == array[m][0]) 
  55.                 { 
  56.                 array[i][1] +=1
  57.                 } 
  58.                         else { 
  59.                     i=m-1
  60.                     break;           
  61.                 } 
  62.             } 
  63.              
  64.         } 
  65.     } 
  66.  
  67.     private static void printArray(int[][] array) 
  68.     { 
  69.         for(int i=0;i<array.length;i++) 
  70.         { 
  71.             for(int j=0;j<array[0].length;j++) 
  72.                     System.out.print(array[i][j]+" "); 
  73.         System.out.println(); 
  74.         } 
  75.     } 

public class ExerciseRandom { public static void main(String[] args) { final int arraylength = 50; //column final int arrayrow = 2; // Row int[][] random = new int[arraylength][arrayrow]; for(int i=0;i<arraylength;i++) { random[i][0] = randm(10,50); } random = bubbleSort(random); countx(random); printArray(random); } //生成min到max之间的随机数,也可以使用util.Random方法 public static int randm(int min,int max) { int m = (int)Math.rint(Math.random()*(max-min)+min); return m; } //冒泡排序 public static int[][] bubbleSort(int[][] array) { boolean isswap=false; for(int i=0;i&lt;array.length-1;i++) { for(int j=0;j&lt;array.length-i-1;j++) { if( array[j][0] > array[j+1][0]) { int temp = array[j][0]; array[j][0] = array[j+1][0]; array[j+1][0] = temp; isswap = true; } } if (isswap == false) return array; } return array; } //统计数组array中的值的出现次数 public static void countx(int[][] array) { for(int i=0;i&lt;array.length;i++) { for(int m=i;m&lt;array.length;m++) { if(array[i][0] == array[m][0]) { array[i][1] +=1; } else { i=m-1; break; } } } } private static void printArray(int[][] array) { for(int i=0;i&lt;array.length;i++) { for(int j=0;j&lt;array[0].length;j++) System.out.print(array[i][j]+" "); System.out.println(); } } }

第二种初步实现

  1. import java.util.Random; 
  2. public class ExerciseRandomTest2 
  3.     public static void main(String[] args) 
  4.     { 
  5.         int[] count  = new int[41];  //最多41种数字 
  6.         Random random = new Random(); 
  7.          
  8.         for(int i=0;i<50;i++) 
  9.         { 
  10.             int number = random.nextInt(41)+10;  //生成的随机数 
  11.             System.out.println(number); 
  12.             //坐标为随机数-10,随机数存在数组中,如果随机数相同,则量变增加1 
  13.             count[number - 10]++;                
  14.         } 
  15.  
  16.         for(int i = 0 ; i< count.length; i++) 
  17.         { 
  18.             if (0 == count[i]) 
  19.             { 
  20.                 continue
  21.             } 
  22.             System.out.println((10+i) + "出现交数:" + count[i]); 
  23.         } 
  24.  
  25.     } 

import java.util.Random; public class ExerciseRandomTest2 { public static void main(String[] args) { int[] count = new int[41]; //最多41种数字 Random random = new Random(); for(int i=0;i&lt;50;i++) { int number = random.nextInt(41)+10; //生成的随机数 System.out.println(number); //坐标为随机数-10,随机数存在数组中,如果随机数相同,则量变增加1 count[number - 10]++; } for(int i = 0 ; i&lt; count.length; i++) { if (0 == count[i]) { continue; } System.out.println((10+i) + "出现交数:" + count[i]); } } }