java陣列的定義與使用
阿新 • • 發佈:2019-02-01
一.什麼是陣列
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
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