1. 程式人生 > >java陣列的定義與使用

java陣列的定義與使用

一.什麼是陣列
1陣列的概念
     同一種類型資料的集合。其實陣列就是一個容器。


2 陣列的好處
  陣列的最大好處就是能都給儲存進來的元素自動進行編號.注意編號是從0開始。


3陣列的建立
方式1:動態建立方式
 元素型別[]  陣列名= new 元素型別[元素個數或陣列長度];
示例:int[] arr = new int[5]; 




方式2:靜態建立方式
元素型別[]  陣列名= new 元素型別[]{元素1,元素2,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};


說明:1.  如果沒有明確的初始化陣列元素,那麼陣列就會用預設的型別值初始化,例如假若沒有初始化整型陣列,元素都將預設值為0,沒有初始化的boolean值是false,物件陣列是null。
2.   陣列儲存在Java堆的連續記憶體空間,所以如果你建立一個大的索引,你可以有足夠的堆空間直到丟擲OutofmemoryError,因為請求的記憶體大小在連續的記憶體空間不可用。
3.  陣列在Java中是一個物件,陣列例項同樣是使用new操作符建立的。Array.length指定了陣列長度
4.  這裡的arr是陣列型資料型別,是引用資料型別




二. 遍歷陣列


1.for迴圈遍歷陣列
程式碼片段
int [] nums = {0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<nums.length;i++){
      System.out.println(num[i]);
}


2.for-each遍歷陣列
程式碼片段
for(int n : nums){
   System.out.println(n);
}


三.   陣列排序的方法
使用這個Arrays工具類提供的方法可以對陣列元素進行升序排序
例如:
int[] scores = new int[];


//建立輸入物件
Scanner input = new Scanner(System.in);


//從鍵盤錄入七個元素
for (int i = 0; i < scores.length; i++)
{
System.out.println("請輸入第" + (i + 1) +"個學生的分數:");
scores[i] = input.nextInt();







//上面迴圈執行結束後,會獲取一個數組,這個陣列中元素沒有排序
//如果想要用升序來排序陣列中元素大小,那麼可以使用如下方法
//sort方法不是某個物件的, 是這個陣列類的,
//sort方法的行為 是對你指定的陣列 進行升序排序。
//要對哪個資料進行排序,就把哪個陣列作為 引數 傳給 sort方法
Arrays.sort(scores);//對輸入的元素進行升序排序


四.陣列中常見錯誤
1.  初始化陣列出錯
(1)   int[] score = new int[]; 錯誤: 缺少陣列維, 其實就是沒有定義陣列的長度
(2)  int[] score = new int[]{52,66,82,17,47};定義了陣列長度,又寫了陣列長度
(3)  int[] score = new int[5];
   score = {1, 2, 3, 4, 5};
錯誤: 非法的表示式開始
如果是先初始化了一個動態陣列方式, 那麼不能通過大括號一次性賦值,只能 通過索引值index取出對應的位置的元素,進行賦值
score[0] = 1;
score[1] = 2;
score[2] = 3;
score[4] = 5;


2. 執行時出錯
陣列越界,如果陣列出現越界編譯會通過但是不能執行
錯誤提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException