1. 程式人生 > >java陣列的基礎知識點總結

java陣列的基礎知識點總結

java陣列的基礎知識點總結

陣列的定義

陣列是一種資料結構,用來儲存同一型別的集合。通過一個整型下標可以訪問陣列中的每一個值。

陣列的建立

建立陣列時需要指出陣列型別(陣列元素型別後面緊跟[ ])和陣列變數名字,還要使用new為陣列在記憶體空間中開闢一片執行空間。

  1. 資料型別[ ] 變數名=new 資料型別[儲存元素的個數];

  2. 資料型別[ ] 變數名=new 資料型別[ ]{元素1,元素2,元素3};
    注:new後面的中括號不允許寫任何內容,會出錯

  3. 資料型別[ ] 變數名={元素1,元素2,元素3};

    資料型別:陣列中儲存元素的資料型別
    [ ]:表示陣列的意義
    變數名:自定義識別符號,表示陣列的地址,每次執行時都不一定在一個位置
    new:建立容器關鍵字
    元素個數:就是資料中,可以儲存多少個數據(恆定,定義)

  4. 一旦建立了陣列它的元素個數將不再可以改變(儘管可以改變每個元素的值),要想獲得陣列中元素的個數用 陣列名.length.

  5. 自動編號的專業名詞是索引,索引的大小是
    0~(length-1).

  6. 訪問陣列中的 元素必須 陣列名[索引],如果該陣列中沒有儲存元素,那麼訪問出來的陣列將預設是0.

陣列的異常

  1. 陣列的索引越界異常(索引為負或者超過陣列長度)

  2. 空指標異常 int[ ] 陣列名={1,5,8}; 陣列名[]=null;
    null是“空”的意思,表示將陣列名中原本代表的地址清除
    此時再輸入:System.out.println(陣列名[]);
    將會出現異常

陣列的遍歷

將所有的元素,依靠索引全獲取出來

  1. 利用迴圈for
 for(int i=0;i<陣列名.length;i++){
                      System.out.println(陣列名[i]);
                      }
  1. 利用foreach迴圈
foreach(int i:arr)
  System.out.println(i);
  1. 利用Arrays.toSting(陣列名)
System.out.println(Arrays.toSting(arr));

將會列印一串包含陣列元素的字串,這些元素被放在括號內用逗號分隔,例如“[1,2,4,6,78,8]”。

陣列的拷貝

陣列brr,要拷貝已經定義陣列arr其中元素的個數,位置大小

淺拷貝

int[]arr={1,3,5,6,9,5};
  brr=arr;
  brr[2]=20;//new arr[2]也等與20

這種拷貝只是將arr所表示的陣列在棧中的地址程式碼拷貝到了brr中,brr所引用的陣列與arr其實就是同一個。因此叫它淺拷貝。

深拷貝

  1. 利用for迴圈結構,逐個將陣列arr中的值賦給已經進行了空間開闢的陣列brr
int[]arr={1,3,5,7,8,0};
int[]brr=new int[arr.length];
for(int i=o;i<arr.length;i++){
  brr[i]=arr[i];
  }
  brr[2]=30;//此時arr[2]=5
  1. 利用Arrays類中的copyOf方法
//arr中所有的元素均被拷貝到brr中,第二個引數便是新陣列的長度
int[]brr=Arrays.copyOf(arr,arr.length);
//該方法也可用來增加陣列的長度
brr=Arrays.copyOf(arr,2*arr.length);

*如果元素型別是數值型,多餘的元素將被賦值為0,如果是布林型將被賦值為false
*如果長度小於原始陣列的長度則只拷貝最前面的值

  1. 用System類的arraycopy方法進行拷貝
    System.arraycopy(from,fromIndex,to,toIndex,count);
System.arraycopy(arr,0,brr,0,arr.length);
//拷貝從arr的0索引開始到brr的0索引開始,一共拷貝arr.length個元素