標籤:
發現自己基礎知識學的不夠紮實,慢慢回顧下!
數組建立:
方式一:type[] 變數名 = new type[元素個數]; ——如:int[] a = new int[10];
方式二:type 變數名[] = new type[元素個數]; ——如:int a[] = nwe int[10];
方式三:type[] a= new type[]{初始化值,逗號分隔} ——如:int[] a=new int[]{1,2,3}
初始化時,不能同時定義維和初始化值 ——例如 :int[] a=new int[3]{1,2,3}
多維陣列:
多維陣列時,第一維必須指定,同時必須由高維向低維定義——例如:int[][] a=new int[][3];即為錯
type[][] a=new type[2][3];
type a[][]=new type[3][2];
int[][] a=new int[][]{{1,2,3},{2,2},{3,2,1}}
length:
唯讀成員length是數組對象的一部分,唯一一個可以訪問的欄位或方法。[]是訪問數組對象的唯一方式。
多維陣列,length只能計算第一維長度。
賦值引用:
JAVA數組初始化的時候擁有的只是對數組的引用,並沒有給數組分配儲存空間。因此,數組之間的複製不能簡單地用“=”賦值,因為操作的是同一對象。
結果顯示:
改變arrayB[0]的值,改變的是引用的數組,因此我們輸出arrayA[0],其實和arrayB[0]一樣。
數組複製:
1.for迴圈
2.System.arraycopy(src, srcPos, dest, destPos, length);
src:源數組;
srcPos:源數組要複製的起始位置;
dest:目的數組;
destPos:目的數組放置的起始位置;
length:複製的長度.
——System.arraycopy(arrayA,0,arrayB,0,1);要比for迴圈快,但是對象數組只是複製引用,不會有兩份拷貝。
並且System.arraycopy()不會自動封裝和拆包,需要數組為同一類型,或者轉換為同類型。
數組比較:
Arrays.equals(arrayA, arrayB);相等條件:數組元素個數相等,對應元素相等
多維陣列比較:Arrays.deepEquals(arrayA, arrayB); 兩個數組必須是同類型數組
java數組學習筆記