java中陣列的簡單介紹
1.什麼是陣列?
陣列就是把相同的資料型別的資料,按照順序,組合成的複合資料型別。
在這個概念中有三個關鍵詞語1.相同的資料型別,2.順序,3.複合資料型別;這三個關鍵字詞語就組成了陣列的概念。
陣列的作用就是用來儲存多個數據型別相同的資料,換句話說就是把相同資料型別的資料組織在一起統一管理。
2.陣列的宣告/定義
我們在宣告/定義陣列的時候都要使用“[]”,可以說“[]”就是陣列的標誌,我們判斷一個元素是否是一個數組,就看他有沒有“[]”。
具體陣列建立的語法格式:
1.資料型別 陣列名稱【識別符號】[];
2.資料型別 []陣列名稱【識別符號】;
例如:
定義一個double型別的陣列,名字叫double_1
double double_1[];
double []double_1;
定義一個字元型的陣列,名字叫char_1
char char_1[];
char []char_1;
當一個數組宣告/定義好以後,意味著只是給這個陣列起了一個名字而已,接下來我們要將宣告的陣列創建出來。
3.建立陣列
陣列在建立之前必須提前定義好/宣告好.
建立陣列就是指為定義好的陣列指定儲存資料的記憶體空間,也就是指定這個陣列將來不可以儲存多少個具體的資料值。
建立陣列的具體格式:
1.資料型別 陣列名稱【識別符號】[];
陣列名稱=new 資料型別[int儲存元素的個數];
2.資料型別 []陣列名稱【識別符號】;
陣列名稱=new 資料型別[int儲存元素的個數];
3.資料型別 陣列名稱【識別符號】[]=new 資料型別[int儲存元素的個數];
4.資料型別 []陣列名稱【識別符號】=new 資料型別[int儲存元素的個數];
例如:
char char_1[]; //定義
char_1=new char[3]; //建立
double []dous;//定義
dous=new doublle[4]; //建立
float f_array[]=new float[5]
int []int_1=new int[6];
4.定義和建立陣列的記憶體結構
定義和建立陣列的記憶體結構如圖:資料建立好以後,裡面一個數據值都沒有儲存進入,接下來我們就需要向建立好的陣列中新增儲存資料。
5.為建立好的陣列賦值
在該陣列賦值之前我們需要了解一下陣列的下標,因為我們不管是為陣列賦值還是得到陣列中儲存的資料值都會碰到這個玩意。
陣列的下邊就是指陣列為每一個儲存資料的儲存單元指定的順序編號,是從0開始計數的。
陣列的賦值方式有2種:
1.逐個為陣列中的每一個儲存單元中新增資料值,需要使用到陣列下標這個概念。
格式:陣列名稱[下標值]=具體資料值;
例如:
char char_1[];
char_1=new char[5];
//由於建立的是char型別的陣列,
//所以每一個儲存空間中就只能儲存字元資料值
char_1[0]='h';
char_1[1]='e';
char_1[2]='l';
char_1[3]='l';
char_1[4]='o';
注意:如果超過陣列的資料儲存單元,還繼續向陣列中儲存資料的話,程式就是出現數組越界的異常,因為沒有多餘的儲存單元用來儲存資料了。
2.將陣列的定義建立賦值使用一條java語句完成
格式:
資料型別 陣列名稱[]={具體資料值1,具體資料值2,...,具體資料值n};
資料型別 []陣列名稱={具體資料值1,具體資料值2,...,具體資料值n};
資料型別 陣列名稱[]=new 資料型別[]{具體資料值1,具體資料值2,...,具體資料值n};
資料型別 []陣列名稱=new 資料型別[]{具體資料值1,具體資料值2,...,具體資料值n};
例如:
char []char_1={'h','e','l','l','o'} ;
char char_1[]={'h','e','l','l','o'} ;
char char_array[]=new char[]{'h','e','l','l','o'};
char []char_array=new char[]{'h','e','l','l','o'};
// 錯誤
char char_array[]=new char[5]{'h','e','l','l','o'};
為陣列賦值完成後,我們有時就需要把儲存在陣列中的資料值拿出來資料,接下來就看看獲取陣列中的資料值。
6.獲取陣列中的資料值
獲取陣列中具體資料值就是指從陣列中得到指定儲存單元中儲存的具體資料值。獲取陣列中指定位置的數值是需要通過陣列下標來訪問的。
格式: 陣列名稱[下標值]
例如:
char []char_1={'h','e','l','l','o'} ;
System.out.println(char_1[4]); // o
7.陣列的length屬性
陣列中的length有兩層含義: 1.在建立陣列的時候指定了陣列的儲存單元的個數,那麼length得到的是儲存單元的個數,而不是實際儲存陣列中的元素個數。
2.在建立的時候直接賦值成功,那麼length得到的是該陣列中的元素個數。
例如:
public class ArrayLength{
public static void main(String args[]){
//定義整型陣列
int []array_int;
//建立陣列
array_int=new int[4];
//length屬性
System.out.println("length_1=="+ array_int.length); //4
//為陣列賦值
array_int[0]=101;
array_int[1]=234;
//在建立陣列的時候指定了陣列的儲存單元的個數,
//那麼length得到的是儲存單元的個數,而不是實際儲存陣列中的元素個數。
System.out.println("length_2=="+ array_int.length); //4
//建立char陣列並賦值
char char_1[]={'w','o','r','l','d'};
//陣列中元素的個數。
System.out.println("char-----length=="+ char_1.length);
}
}
8.二維陣列和多維陣列
上面的內容中我們在定義陣列的時候使用了一個“[]”,那麼這種陣列叫一維陣列。
如果我們在定義陣列的時候使用兩個“[]”,這種陣列就叫二維陣列。
二維陣列可以用來儲存一個表格形式的資料進入陣列。
例如:
public class ErArray{
public static void main(String args[]){
//定義一個字元型的二維陣列
char char_array[][];
//char [][]char_array;
//建立二維陣列
char_array=new char[2][5];
//賦值
char_array[0][0]='h';
char_array[0][1]='e';
char_array[0][2]='l';
char_array[0][3]='l';
char_array[0][4]='o';
char_array[1][0]='w';
char_array[1][1]='o';
char_array[1][2]='r';
char_array[1][3]='l';
char_array[1][4]='d';
System.out.println(char_array[1][0]);
char char_1[][]={{'h','e','l','l','o'},{'w','o','r','l','d'}};
System.out.println(char_1[0][1]);
}
}
如果我們在定義陣列的時候使用超過兩個“[]”,這種陣列叫多維陣列。多維陣列我們一般都很少使用到,這裡就不多做介紹。