1. 程式人生 > >Java筆記(二)陣列問題

Java筆記(二)陣列問題

上次說到,java取消了對goto的使用,他很聰明的使用了break,continue來跳出迴圈,相當於在迴圈之中使用了goto。

void main(){
	int a[ 4];
	one_num:
		for(int i=0;i<5;i++){
			a[i] = random()%6;
			if(a[i] = 3) continue one_num;
			}
		}

利用這種方法,就能跳出迴圈,極大的化簡了迴圈處的程式碼。

在迴圈的時候, java還添加了另一種對陣列的迴圈。

int a[4];
//賦值
for( int m : a) {
			//todo:  
}

在我們進行陣列複製的時候,常常利用for迴圈,但是java給我們一種更加高效的方法,system.arraycopy()可以更加快捷的複製陣列。
多維陣列的問題,與c++不同,我們從他們對於陣列的宣告方式就可以看出他們的不同。

int arr [][ ] = new int [2][];
arr[0] = new int[2];
arr[1] =new int [4];

int arr[2][4];

int arr [ ][4]=new int [][4] ;

第一種是java,中間的宣告方式都可以,最後一個是c++的。java的多維陣列其實就是陣列的陣列,一維陣列中儲存著其它維的陣列的引用,每一個小陣列都是獨立的,記憶體位置不連續。
而c++的多維陣列記憶體空間是連續的,所以宣告的時候要將列數事先確定以用來分配記憶體。