一.數組的基本概念
- 數組可以看成是多個相同類型數據組合,對這些數據的統一管理。
- 數組變量屬引用類型,數組也可以看成是對象,數組中的每個元素相當於該對象的成員變量。
- 數組的元素可以是任何數據類型,包括基本類型和引用類型。
- C和C++中的數組都可以分配在棧上面,而JAVA中的數組是只能分配在堆上面的,因為JAVA中的數組是引用類型。
二.一維數組
一維數組的聲明方式有2種:
- 格式一:數組元素類型 數組名[ ]; 即type var[ ];
- 格式二:數組元素類型[ ] 數組名; 即type[ ] var;
- 格式二聲明數組的方法與C#上聲明一維數組的方法一樣。
例如:int a1[ ]; int[ ] a2;
double b[ ];
person[ ] p1; String s1[ ];
注意:JAVA語言中聲明數組時不能指定其長度(數組中的元素個數)
如:int a[5]; 這樣聲明一維數組是非法的。
三.數組的模型
- 一維數組:一維數組就是一行,一行小格。
- 二維數組:二維數組就是一行加一列組成的一個平面分成的小格,有行有列。
- 三維數組:三維數組就是一個立方體。
- 人類對最多認識到三維空間。
四.數組對象的創建
JAVA中使用關鍵字new創建數組對象。
格式為:數組名 = new 數組元素的類型[數組元素的個數]
例如:
五.元素為引用數據類型的數組
注意:元素為引用數據類型的數組中的每一個元素都需要實例化。
例如:
class Date{
int year; int moth; int day;
Date(int y; int m, int d){
year=y ;
month=m ;
day=d ;
}
}
六.數組的初始化
-
1.動態初始化
數組定義與為數組元素分配空間和賦值的操作分開進行。
例如:
1 public class Test{ 2 public static void main(String args[ ]){ 3 int a[ ]; //定義數組,即聲明一個int類型的數組a[ ] 4 a=new int[3]; //給數組元素分配內存空間。 5 a[0]=3; a[1]=9; a[2]=8; //給數組元素賦值。 6 Date days[ ]; 7 days=new Date[3]; 8 days[0]=new Date(1, 4, 2004); 9 days[1]=new Date(2, 4, 2004); 10 days[2]=new Date(3, 4, 2004); 11 } 12 } 13 14 class Date{ 15 int year, month, day; 16 Date(int y, int m, int d){ 17 year = y ; 18 month = m ; 19 day = d ; 20 } 21 } 22
-
2.靜態初始化
在定義數組的同時就為數組元素分配空間並賦值。
例如:
puclic class Test{ public static void main(String args[ ]){ int a[ ] = { 3, 9, 8}; //在定義數組的同時給數組分配空間並賦值。 Date days[ ] = { new Date(1, 4, 2004), new Date(2 ,4 ,2004), new Date(3 ,4, 2004) }; } } class Date{ int year, month, day; Date(int y, int m, int d){ year = y ; month = m ; day = d ; } }
七.數組元素的默認初始化
- 數組是引用類型,它的元素相當於類的成員變量,因此給數組分配內存空間后,每個元素也被按照成員變量的規則被隱式初始化。
1 public class Test{ 2 public static void main(String args[ ]){ 3 int a[ ] = new int[5]; 4 Date[ ] days=new Date[3]; 5 System.out.println(a[3]); 6 System.out.println(days[2]); 7 } 8 } 9 class Date{ 10 int year, month, day; 11 Date(int y, int m, int d){ 12 year = y ; 13 month = m ; 14 day = d ; 15 } 16 }
- 輸出結果:
System.out.println(a[3]); 打印出來的結果是:0。
System.out.println(days[2]); 打印出來的結果是:null(空)
八.數組元素的引用
定義並用運算符new為之分配內存空間后,才可以引用數組中的每個元素,數組元素的引用方式為:arrayName[index], index為數組元素下標,可以是整型常量或整型表達式。如:a[3], b[i], c[6*i]。
數組元素下標從0開始;長度為n的數組的合法下標取值范圍為0 ~ n—1。
每個數組都有一個屬性length指明它的長度,例如:a.length的值為數組a的長度(元素個數)。
九.二維數組
十、理解JAVA中的各個維度的數組模型