陣列作為容器底層的資料結構,還是瞭解一下吧

陣列作為容器底層的資料結構,還是瞭解一下吧

陣列

陣列的本質是一個相同資料型別的元素集合。元素是陣列的組成部分,陣列中每一個元素都可以使用唯一的索引值來訪問,這個索引值也可以叫做陣列下標。陣列是很多集合類的底層儲存結構,在瞭解java集合類之前大家先了解一下陣列吧。

陣列初始化

陣列的宣告語法為

// type為型別 arrayName為陣列變數名稱type[] arrayName;//如:int[] numbers;

在進行陣列初始化時,有靜態初始化和動態初始化兩種方式。

靜態初始化

靜態初始化是指在初始化陣列時為陣列的每個元素賦值,由元素的個數來決定陣列的長度

int[] numbers = {1,2,3};// 或者numbers = new int[]{1,2,3};

動態初始化

動態初始化是指在初始化陣列時指定陣列長度,系統為每個元素分配初始值,之後再按照需要為每個元素修改值。

int[] numbers = new int[3];// 此時numbers中的元素為 0,0,0numbers[0] = 1;// 將索引0的位置賦值為1

注意:陣列的索引是從0開始的

二維陣列

上面說的陣列是一個一維陣列,java可以構建多維陣列,其實本質上來說還是一維陣列,只是陣列中的元素儲存的還是陣列而已。

二維陣列可以看做是一個表格,有行有列,二維陣列中的每一個元素就代表了確定行列的一個單元格

二維陣列的宣告為

// type為型別 arrayName為陣列變數名稱type[][] arrayName;//如:int[][] numbers;

靜態初始化

int[][] numbers = {{1,2,3},{1,2,3}};// 或者numbers = new int[][]{{1,2,3},{1,2,3}};

動態初始化

int[][] numbers = new int[3][3];// 此時numbers中的每個元素都為0// 如果需要確認某個元素的話,需要指定兩個索引,第一個索引找到該位置下的一維陣列,第二個索引找到所需要的元素numbers[0][0] = 1;// 將該位置賦值為1

非矩形陣列

由於第二個索引代表的是該索引位置對應的一維陣列,每個索引下的陣列長度不同時就是非矩形陣列。

靜態初始化

int[][] numbers = {{1,2,3},{1,2,3,4}};// 或者numbers = new int[][]{{1,2,3},{1,2,3,4}};

動態初始化

// 第二個索引長度不指定,因為每個是不同的int[][] numbers = new int[3][];numbers[0] = new int[4];numbers[1] = new int[5];numbers[2] = new int[6];