重學java之隨機/給定數組元素統計問題

import java.util.Arrays;
import java.util.*;
import java.lang.Integer;

public class BinarySearchTest {
 public static int[] initArray() {//生成一個隨機數組;
  int[] array = new int[50];
  for (int i = 0; i < 50; i++) {
   int numb = (int) (Math.random() * 100);
   array[i] = numb;
  }
  return array;//返回該數組的引用;
 }

 public static void sortArray(int[] a) {
  Arrays.sort(a);//對該隨機數組按升序排列,使用類庫方法;
 }
 public static void disply(int[] a) {//輸出函數,實現一系列功能並輸出結果,
  List<Integer> arrlist = new ArrayList<Integer>();
  List<Integer> arrlist2 = new ArrayList<Integer>();//生成ArrayList的實例,該實例實現了接口List;
  int frequnce = 1;//定義變量,用於記錄某個數出現的次數;
  int valu = 0;//
  int max=0;//某個數出現的最大次數;
  int numb = 0;//出現次數最多的數的索引值;
  for (int i = 0; i < a.length - 1; i++) {//該循環找出每個數出現的次數,並將次數記錄在arrlist裏,將相對應
   valu = a[i];                        //的數存在arrlist2裏面;
   if (valu != a[i + 1]) {
    arrlist.add(frequnce);
    frequnce = 1;
    arrlist2.add(a[i]);
   }
   if (valu == a[i + 1]) {
    frequnce++;
   }
  } 
   System.out.println(arrlist2);//打印出arrlist便於判斷程序功能是否正確;
   
  Integer[] arry = new Integer[arrlist.size()];
  Integer[] brry = new Integer[arrlist2.size()];//定義包裝類對象數組;
  arrlist.toArray(arry);
  arrlist2.toArray(brry);  //將arrlist2轉換爲包裝類數組;
  for (int i = 0; i < arry.length; i++) {   
   if (max < arry[i].intValue()) {
    max = arry[i].intValue();//找出arry中的最大值,即最大出現次數;
   }  
   System.out.println("元素" + brry[i] + "出現" + arry[i] + "次");//打印每個數出現的次數;
  }
  for(int i=0;i<arry.length;i++){//找出出現次數對多的數在arry中的索引;
   if(max==arry[i])
    numb=i;
  }
  System.out.println("出現次數最多的是" + brry[numb] + "共出現:" + max + "次");//輸出出現次數對多的數和次數
  for(int i=0;i<brry.length;i++){
   System.out.print(brry[i]+" ");//輸出brry數組便於判斷程序功能是否正確;
  }
  System.out.println();
  for(int i=0;i<arry.length;i++){//輸出arry數組便於判斷程序功能是否正確;
   System.out.print(arry[i]+" ");
  }
 }

 public static void main(String args[]) {
  int[] arrays = initArray();
  sortArray(arrays);
  disply(arrays);
  int[] array2=new int[]{1,1,1,2,3,3,6,6,7,8,9,9,9,9,10,13,15,15,15,17,19,19,20,20,20,20,20};
  disply(array2);
 }
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章