<small id="7ktuj"></small>
      <bdo id="7ktuj"></bdo>
        <mark id="7ktuj"></mark>

        <source id="7ktuj"></source>
        <small id="7ktuj"></small>

        ITPub博客

        首頁 > 應用開發 > Java > java中數組常用方法

        java中數組常用方法

        原創 Java 作者:蝴蝶飛啊飛 時間:2019-10-21 12:48:17 0 刪除 編輯

        1>. 創建數組

        1. 動態初始化: int [] arrry=new int[]{1,2,3,4}

        2. 靜態初始化數組: int []arry={1,2,3,4}

        ** 注意: ** 靜態初始化的時候,數組元素個數和初始化數據類型格式是一致的

        2> 使用數組

        1. 在使用數組時要防止數組越界發生:下標訪問操作有效范圍是 [1,length]

        例如:Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 100

        at Test.main(Test.java:4) ,此異常就代表數組越界。

        3> 遍歷數組

        1.for 循環:

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

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

            System.out.println(array[i];)

            }

        2.for-each

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

        for(int x:array){

        System.out.println(x);

        }

        for-each for 循環的另外一種使用方式 . 能夠更方便的完成對數組的遍歷 . 可以避免循環條件和更新語句寫錯 .

        4>. 數組的拷貝 : 指的是將一個數組的部分內容替換掉外匯返傭http://www.fx61.com/另一個數組的部分內容(必須是連續的)

        1.System.arraycopy(): 是被 native 所修飾的方法,特點是速度快

        2.Array.copyof(): 底層調用了 System.arrayCopy() 方法的,相對于上面的方法來說,速度相對較慢

        3.Array.clone(): 用法為原數組 .( 拷貝的數組 )

        4. 拷貝對基本類型來說是深拷貝(互相沒影響);

        拷貝對引用類型來說是淺拷貝(改變一個對另一個有影響);

        4.for 循環

        5>.Arrays 常用函數 ( 操作數組的工具類)需要導入: import java.util.Arrays;

        1.Array.equals ()用于比較兩個數組是否相等

        2.Array.sort ()用于對數組排序

        3.Array.binarySearch ()用于在已經排序的數組中查找元素

        4.Array.toString ()產生數組的 String 表示

        6>. 二維數組

        1. 數據類型 [][] 數組名稱 =new 數據類型 [ 行數 ][ 列數 ]{ 初始化數據 }

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

        for(int row=0;row<array.length,row++){  

          for(int col=0;col<array[row].length;col++){

          int[][] arr = {

         {1, 2, 3, 4},

         {5, 6, 7, 8},

         {9, 10, 11, 12}

        };

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

         for (int col = 0; col < arr[row].length; col++) {

         System.out.printf("%d\t", arr[row][col]);

         }

         System.out.println("");

        }

          }

        }

        1. arraycopy

        方法原型: 

        public static void arraycopy(sourceArray,int index1,copyArray,index2,int length)

        即從sourceArray index1 位置開始,后面 length 個元素,放到 copyArray 數組從 index2 的位置

        注意這里的index1,2 都是數組的索引,即數組的下標

        如果copyArray 數組長度小于 length ,程序會崩潰

        實例:創建main 方法,自行測試

        void test_arraycopy()

            {

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

             int []b = {6,7,8,9,10};

             System.arraycopy(a, 2, b, 3, 2);

             System.out.println("\n 通過復制以后的到的數組為: ");

             for(int i:b)

             {

               System.out.printf("%d ",i);

             }

             System.out.println();

            } 

        運行結果:

        通過復制以后的到的數組為:

        6 7 8 3 4 

        2. copyOf copyOFRange 方法:

        copyOf 方法原型: public static float[] copyOf(float []original,int newLength)

        從數組的第一個元素開始復制,復制長度為length ,若長度超過數組原長,則超出元素為默認值 0

        該方法返回一個數組 

        void test_copyOf()

            {

             int []a = {11,22,33,44,55};

             int []b = Arrays.copyOf(a, 7);

             System.out.println(" 測試 copyOf 函數,復制后得到的 b 數組為 ");

             for(int i:b)

             {

               System.out.printf("%d ",i);

             }

             System.out.println("\n 通過 toString 方法輸出數組 \n"+Arrays.toString(b));

            }

        運行結果:

        測試copyOf 函數,復制后得到的 b 數組為

        11 22 33 44 55 0 0

        原數組長度為 5 length 7 ,故復制后的數組最后兩位為默認值

        copyOfRange 方法原型: public static double[] copyOfRange(double []original,int from,int to)

        original 下標為 from 的位置開始復制,到 to-1 的位置結束,返回一個長度為 to-from 的數組  

        void test_arrayOfRange()

            {

             int []a = {55,33,44,22,11};

             int []b = Arrays.copyOfRange(a, 1, 4);

             System.out.println(" 測試 copyOfRange 方法: ");

             System.out.println(Arrays.toString(b));

            }

        運行結果: 

        測試copyOfRange 方法:

        [33, 44, 22]

        3. 改進遍歷數組的方法:

        Arrays.toString( 數組名 )

        for( 循環體,數組名 )

        {

        System.out.println i );

        }

        或者用 Arrays.toString( 數組名 ) 方法  

        void print_array()

            {

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

             System.out.println(" 采用改進方法遍歷數組 a, 輸出結果 :");

             for(int i:a)

             {

               System.out.printf("%d ",i);

             }

             System.out.println(" 調用 toString 方法輸出數組 b");

             System.out.println(Arrays.toString(b));

            }

        運行結果:

        采用改進方法遍歷數組a, 輸出結果 :

        1 2 3 4 5 

        調用toString 方法輸出數組 b

        [1, 2, 3, 4, 5] 

        4.  數組的排序: sort 方法

        該方法有兩個函數原型:

        public static void sort(doule a[])

        public static void sort(doule a[],int start,int end);

        第一種,將數組按升序全排序

        第二種從索引為start 到索引為 end-1 的位置,升序排序  

        void test_arrayOfRange()

            {

             int []a = {55,33,44,22,11};

             int []b = Arrays.copyOfRange(a, 1, 4);

                Arrays.sort(a, 1, 4);

             Arrays.sort(b);

             System.out.println(" 排序后 b 數組為: ");

             for(int i:b)

             {

               System.out.printf("%d ",i);

             }

             System.out.println("\n 排序后 a 數組為: ");

             for(int i:a)

             {

               System.out.printf("%d ",i);

             }

             System.out.println();

            }

        運行結果: 

        排序后b 數組為:

        22 33 44 

        排序后a 數組為:

        55 22 33 44 11 

        5.  在數組中查找一個數的方法: binarySearch

        方法原型:public static int binarySearch(double [] a,double number)

        返回要尋找的數number 的索引,若沒查找到,則返回一個負數

        void test_binarySearch()

            {

             int a[] = {1,2,3};

             int x;

             x= Arrays.binarySearch(a, 2);

             System.out.println(" 數組 a 為: ");

             System.out.println(Arrays.toString(a));

             System.out.println(" 數字 x 在數組中的索引(下標)為 :"+x);

            }

        運行結果:

        數組a 為:

        [1, 2, 3]

        數字x 在數組中的索引(下標)為 :1

         


        來自 “ ITPUB博客 ” ,鏈接:http://www.ep4tq.com/69946279/viewspace-2660764/,如需轉載,請注明出處,否則將追究法律責任。

        請登錄后發表評論 登錄
        全部評論
        管他誰是誰非,做自己的主宰,我是這條街最亮的崽!

        注冊時間:2019-08-22

        • 博文量
          49
        • 訪問量
          21835
        妹子图每日分享