Java數組

中國大學Mooc學習 5.1

1.數組遍歷

1.for遍歷

int[] a = {1, 2, 45,6545,32423,3,4,5,6};

for (int s:a)
 {
            System.out.println(s);
  }

等價于:

for (int i =0;i<a.length;i++){
            System.out.print(a[i]);
        }

2.java數組小實例

寫一個程序,輸入數量不確定的【0,9】范圍內的證書,統計每一種數字出現的次數,輸入-1表示結束

System.out.print("請輸入一個數:");
        Scanner in = new Scanner(System.in);

        int max;

        int[] num = new int[100];
        int x;//盛放輸入數據

        x = in.nextInt();//先賦給x一個值
        max = x;

        //將輸入值賦給數組
       for (int i=0;x!=-1;i++){
           if (x>max)
               max = x;//求的輸入最大值,在創立一個數組程度為最大值的數組,以統計出現個數
           num[i] = x;
           x = in.nextInt();//賦給x下一個值
       }

       int[] count = new  int[max+1];

        for (int i=0;i<num.length;i++){
            count[num[i]]++;
        }

        for (int i=0;i<count.length;i++){
            System.out.print(i+":");
            System.out.println(count[i]);

        }

這種想法是從《算法珠璣》中看到的

再次修改
System.out.print("請輸入一個數:");
        Scanner in = new Scanner(System.in);

        int max;//計數

        int[] num = new int[100];
        //初始值全部賦值為-1,未來在最后一部過濾
        for (int i=0;i<num.length;i++){
            num[i] = -1;
        }

        int x;//盛放輸入數據

        x = in.nextInt();//先賦給x一個值
        max = x;

        //將輸入值賦給數組
       for (int i=0;x!=-1;i++){
           if (x>max)
               max = x;//求的輸入最大值,在創立一個數組程度為最大值的數組,以統計出現個數
           num[i] = x;
           x = in.nextInt();//賦給x下一個值
       }

       int[] count = new  int[max+1];


//        for (int i=0;i<count.length;i++){
//            count[num[i]]=0;//將有值的全部賦值為0,以便可以正確計數
//        }

        for (int i=0;i<num.length;i++){
            if (num[i]==-1){
//                System.out.println("contiune OK");
                continue;
            }
            count[num[i]]++;//計數
        }
        System.out.println("計數 OK");

        for (int i=0;i<count.length;i++){

            if (count[i]==0){
                continue;//去除計數值為0的數組
            }

            System.out.print(i+":");
            System.out.print(count[i]+"     ");

        }

輸出結果:

請輸入一個數:1 2 3 4 5 6 1 1 1  0  0 -1
計數 OK
0:2     1:4     2:1     3:1     4:1     5:1     6:1  

請輸入一個數:1 2 3 7 89 76 -1
計數 OK
1:1     2:1     3:1     7:1     76:1     89:1 

再次再次修改
System.out.print("請輸入一個數:");
        Scanner in = new Scanner(System.in);

        int max;//計數

        int[] num = new int[100];

        int x;//盛放輸入數據

        x = in.nextInt();//先賦給x一個值
        max = x;

        //將輸入值賦給數組
       for (int i=0;x!=-1;i++){
           num[x]++;
           x = in.nextInt();//賦給x下一個值
       }
       for (int i=0;i<num.length;i++)
       {
           if (num[i]==0){
               continue;
           }
           System.out.print(i+":"+num[i]+"    ");
       }

輸出結果:

請輸入一個數:1 2 3 4 5 6 1 1 1  0  0 -1
0:2    1:4    2:1    3:1    4:1    5:1    6:1    

算法的重要性!

2.foreach

int[] a = {1, 2, 45,6545,32423,3,4,5,6};

for (int s:a)
 {
            System.out.println(s);
  }

2.二維數組

1.二維數組賦值

 for (int i=0;i<num.length;i++){
            for (int j =0;j<num[i].length;j++){
                num[i][j] = rand.nextInt(10);
                System.out.print(num[i][j]+"  ");
            }

2.二維數組遍歷

方法一:

for (int i=0;i<num.length;i++){
            for (int j =0;j<num[i].length;j++){
                System.out.print(num[i][j]+"  ");
            }

方法二:

for (int[] s:num){
            for (int i:s){
                System.out.print(i+"  ");
            }
            System.out.println("\n");

        }
int[][] num = new int[5][6];

        //random number
        Random rand = new Random(10);

        for (int i=0;i<num.length;i++){
            for (int j =0;j<num[i].length;j++){
                num[i][j] = rand.nextInt(10);
                System.out.print(num[i][j]+"  ");
            }
            System.out.println("\n");
        }
        System.out.println("-----------------------------\n" +
                "");
        for (int[] s:num){
            for (int i:s){
                System.out.print(i+"  ");
            }
            System.out.println("\n");

        }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容