Java基礎學習筆記(五)—— 數組

Java基礎學習筆記(五)—— 數組

Life was like a box of chocolates, you never know what you’re gonna get.

| @Author:TTODS


一維數組

當數組中每個元素都只帶一個下標時,這種數組就是“一維數組”。數組是引用數據類型,引用數據類型在使用之前一定要做兩件事情:聲明和初始化。

一維數組的聲明

java中變量聲明有兩種方式

int[] nums1; //元素數據類型[] 數組變量名
int nums2[]; //元素數據類型 數組變量名[]

值得注意的是:①在java中給推薦使用第一種方法,因爲其更符合面向對象的思想,將元素數據類型[]看作是一個整體類型,即數組類型。而後者常用於C等語言的數組聲明。②數組聲明完成後,JVM還沒有給元素分配內存空間。

初始化

數組初始化的過程就是爲數組的每一個元素分配內存空間,併爲每一個元素提供初始值。初始化之後數值的長度就確定下來不能變化了。
值得注意的是:①有些計算機語言雖然提供了可變類型數組,它的長度是可變的,這種數組本質上是創建了一個新的數組對象,並非是原始數組的長度發生了變化

靜態初始化

已知數組的長度及數組中每個元素的值時,可以使用數組的靜態初始化。

int[] nums = {1,2,3,4,5,6,7};//數組的靜態初始化用{value1,value2,value3···}的形式初始化數組。
for(int num:nums) {
	System.out.print(num+" ");
}

輸出:

1 2 3 4 5 6 7
動態初始化

用new運算符分配指定長度的內存空間

int[] nums = new int[20];	//爲nums數組 分配可以存放20個int數據的內存空間
	nums[0] = 1;
	System.out.printf("%6d ",nums[0]);
	for(int i=1;i<20;i++) {
		nums[i] = 2*nums[i-1];
		System.out.printf("%6d ",nums[i]);
		if(i==9) System.out.println();
	}

輸出

     1      2      4      8     16     32     64    128    256    512 
  1024   2048   4096   8192  16384  32768  65536 131072 262144 524288 

值得注意的是:我們用new爲數組分配了內存空間後,在賦值前,數組的元素內容是數組類型的默認值,例如int類型的默認值是0

int[] nums = new int[20];	//爲nums數組 分配可以存放20個int數據的內存空間
for(int i:nums)
		System.out.printf("%3d ",i);

輸出

  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 

其他類型的默認值如下表:

基本類型 默認值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char ‘\u0000’
boolean false
引用 null

多維數組

多維數組實際上是一維數組的特殊情況,即一維數組的每個元素都是數組。比如二維數組的每個元素都是一個一維數組。
下面以二維數組爲例:

二維數組的聲明:
int[][] intArray0;
int[] intArray1[];
int intArray2[][];
二維數組的初始化:
靜態初始化
//二維數組的靜態初始化
int[][] intArray = {
		{1,2,3,4},
		{2,3,4,1},
		{3,4,1,2},
		{4,1,2,3}};
//二維數組的遍歷,注意第一層循環裏元素類型是int[]
for(int[] nums :intArray) {
	for(int num:nums)
		System.out.printf(" %d ",num);
	System.out.println();}
	}

輸出:

 1  2  3  4 
 2  3  4  1 
 3  4  1  2 
 4  1  2  3 
動態初始化
int[][] intArray = new int[4][4];
	for(int i =0;i<4;i++) {
		for(int j=0;j<4;j++) {
			intArray[i][j] = i+j;
			System.out.printf(" %d ",intArray[i][j]);
		}
		System.out.println();
	}

輸出:

 0  1  2  3 
 1  2  3  4 
 2  3  4  5 
 3  4  5  6 

不規則數組

因爲多維數組是數組的數組,但是子數組的長度可以不一樣,於是就有了不規則數組。

int Array[][] = {
		{1},
		{1,1},
		{1,1,1},
		{1,1,1,1}};
for(int[] nums:Array) {
	for(int num:nums)
		System.out.printf(" %d ", num);
	System.out.println();
}

輸出

 1 
 1  1 
 1  1  1 
 1  1  1  1 

用for-each語句遍歷不規則數組是不錯的選擇


- THE END -
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章