1. 程式人生 > >IT兄弟連 Java語法教程 陣列 經典案例

IT兄弟連 Java語法教程 陣列 經典案例

案例需求:

程式設計實現雙色球中獎號碼的生成

1)應用知識:

●  陣列的宣告

●  陣列的使用

●  for迴圈

 

2)需求解析:

在該程式中,需要定義一個長度為7的陣列,用來儲存中獎號碼,使用Random物件獲取1~33以內的隨機數最為中獎號碼,使用for迴圈迴圈6次產生6個普通的中獎號碼存入陣列中,最後使用Random物件隨機生成一個1~16以內的中獎號碼,需要注意,已經產生的中獎號碼不能再次作為中獎號碼,所以需要使用if分支結構控制。

 

3)需求實現:

import java.util.Random

public class ColorBall{

public static void main(String[] args){

    //宣告一個數組用來存放中獎號碼

    int[] arr = new int[7];

    //宣告隨機數物件

    Random rand = new Random();

    //使用for迴圈生成中獎號碼

    for(int i = 0; i<6; i++){

         //獲取一個隨機數,表示中獎號碼

         arr[i] = random.nextInt(33)+1;

         for(int j = i-1; j>=0; j--){

              //如果生成的隨機數已經存在,則重新生成一個隨機數

              if(arr[i] == arr[j]){

                   i--;

                   break;

              }

         }

    }

    //生成最後的特殊中獎號碼

    arr[6] = rand.nextInt(16)+1;

    //遍歷並輸出所有中獎號碼

    for(int num : arr){

         System.out.println(arr[i] + " ");

    }

    System.out.println();

}

}

 

案例需求:

程式設計實現任意正整數中重複數字出現的次數的統計

1)應用知識:

●  陣列的宣告

●  陣列的使用

●  while迴圈

●  for迴圈

●  算術運算子

 

2)需求解析:

程式開始執行,提示使用者輸入一個正整數並使用Scanner物件接收,準備一個長度為10的陣列,陣列的下標對應了正整數中可能出現的數字,0~9。然後通過算符運算子將該正整數的每個位中的數值提取出來,如果使用者輸入的正整數中存在1時,則將陣列中下標為1的位置上的數值加1,以此類推。最後遍歷輸出該陣列中的元素,就可以實現任意正整數中重複陣列出現次數的統計。

 

3)需求實現:

import java.util.Scanner;

public class NumCount{

    public static void main(String[] args){

        //提示使用者輸入一個正整數並使用變數記錄

        System.out.println("請輸入一個正整數");

        Scanner scan = new Scanner(System.in);

        int num = scan.nextInt();

        //準備一個長度為10的型別為int的一維陣列

        int[] arr = new int[10];

        //拆分正整數中的每個數字並統計到一維陣列中

        while(num > 0){

             arr[num%10]++;

             num /= 10;

        }

        //列印最終的統計結果

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

             if(arr[i] > 0){

                  System.out.println(i + "出現了" + arr[i] + "次!");

             }

        }

    }

}

 

 

案例需求:

程式設計實現使用氣泡排序堆陣列中的元素從小到大排序

1)應用知識:

●  for迴圈

●  陣列的宣告

●  氣泡排序

 

2)需求解析:

氣泡排序的思想是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完成。

第一趟比較完成後,最後一個數一定是陣列中最大的一個數,所以第二趟比較的時候最後一個數不參與比較;

第二趟比較完成後,倒數第二個數也一定是陣列中第二大的數,所以第三趟比較的時候最後兩個數不參與比較;

依次類推,每一趟比較次數-1;

 

3)需求實現:

public class BubbleSort{

    public static void main(String[] args){

        int[] arr = {6,5,7,4,8,3,9,2,0,1};

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

             for(int j = 0; j<arr.length-i-1;j++){

                  if(arr[j] > arr[j+1]){

                    int temp = arr[j];

                    arr[j] = arr[j+1];

                    arr[j+1] = temp;

                  }

             }

        }

        for(int num : arr){

             System.out.println(num + ",");

        }

    }

}

 

案例需求:

程式設計實現陣列元素反轉

1)應用知識:

●  陣列的宣告

●  陣列的使用

●  for迴圈

 

2)需求解析:

實現陣列元素的反轉,就是將陣列中的元素前後位置調換,第一個元素和最後一個元素調換位置,第二個元素和倒數第二個元素調換位置,依次類推,如果陣列的長度是奇數,那麼中間位置的陣列元素就不需要調換位置。使用for迴圈迴圈陣列長度的一半即可完成。

 

3)需求實現:

public class ArrReverse{

    public static void main(String[] args){

        int[] arr = {1,2,3,4};

        for(int i = 0;i<arr.length/2;i++){

             int temp = arr[i];

             arr[i] = arr[arr.length-i-1];

             arr[arr.length-i-1] = temp;

        }

        for(int num : arr){

             System.out.println(num + ",");

        }

    }

}

 

案例需求:

程式設計實現將兩個數組合併為一個數組

1)應用技術:

●  陣列的宣告

●  陣列的使用

●  for迴圈

●  if分支結構

 

2)需求分析:

將兩個數組合併成一個數組,那麼這個新的陣列的長度一定等於這兩個陣列長度之和,定義出這個新的陣列,然後使用for迴圈依次將兩個陣列中的元素放入新陣列即可。

3)需求實現:

public class ArrCombine{

    public static void main(String[] args){

        int[] arr1 = {1,2,3,4};

        int[] arr2 = {5,6,7,8};

        int[] arr3 = new int[arr1.length+arr2.length];

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

             if(i<arr1.length){

                  arr3[i] = arr1[i];

             }

             if(i>=arr2.length){

                  arr3[i] = arr2[i-arr1.length];

             }

        }

        for(int num : arr3){

             System.out.println(num + ",");

        }

 &nb