19_數組定義和訪問

第十九章 數組定義和訪問

作者:張子默

一、容器的概念

容器是能夠將多個數據存儲到一起的一種存儲結構,每個數據稱爲該容器的元素。

  • **生活中的容器:**水杯、衣櫃、教室

二、數組的概念

數組就是一種存儲數據長度固定的容器,保證多個數據的數據類型要一致。

三、數組的定義

1、定義方式①

數組存儲的數據類型[] 數組名字 = new 數組存儲的數據類型[長度];
  • 數組定義格式詳解

    • 數組存儲的數據類型:創建的數組容器可以存儲什麼數據類型。

    • []:表示數組。

    • 數組名字:爲定義的數組起個變量名,滿足標識符規範,可以使用名字操作數組。

    • new:關鍵字,創建數組使用的關鍵字。

    • 數組存儲的數據類型:創建的數組容器可以存儲什麼數據類型。

    • [長度]:數組的長度,表示數組容器中可以存儲多少個元素。

    • 注意:數組有定長特性,長度一旦指定,不可更改。

      • 和水杯道理相同,買了一個2升的水杯,總容量就是2升,不能多也不能少。
  • 舉例:定義可以存儲3個整數的數組容器,代碼如下:

    int[] arr = new int[3];
    

2、定義方式②

數據類型[] 數組名 = new 數據類型[]{元素1, 元素2, 元素3, ...};
  • 舉例:定義存儲1, 2, 3, 4, 5整數的數組容器

    int[] arr = new int[]{1, 2, 3, 4, 5};
    

3、定義方式③

數據類型[] 數組名 = {元素1, 元素2, 元素3, ...};
  • 舉例:定義存儲1, 2, 3, 4, 5整數的數組容器

    int[] arr = {1, 2, 3, 4, 5};
    

4、實例

	/*
	數組的概念:一種可以同時存放多個數據值的容器。
	
	數組的特點:
		1.數組是一種引用數據類型
		2.數組當中的多個數據,類型必須統一
		3.數組的長度在程序運行期間不可改變
		
	數組的初始化:在內存當中創建一個數組,並且向其中賦予一些默認值。
	
	兩種常見的初始化方式:
		1.動態初始化(指定長度)
		2.靜態初始化(指定內容)
		
	動態初始化數組的格式:
		數據類型[] 數組名稱 = new 數據類型[數組長度];
		
		解析含義:
			左側數據類型:也就是數組當中保存的數據,全都是統一的什麼類型
			左側的中括號:代表一個數組
			左側的數組名稱:給數組取一個名字
			右側的new:代表創建數組的動作
			右側數據類型:必須和左邊的數據類型保持一致
			右側中括號的長度:也就是數組當中。到底可以保存多少個數據,是一個int數字
	*/
	public class Demo01Array {
		public static void main(String[] args) {
			/*int score1 = 100;
			int score2 = 98;
			int score3 = 99;
			System.out.println(score3); //99
			
			score3 = 100;
			System.out.println(score3); //100*/
			
			//創建一個數組,裏面可以存放300個int數據
			//格式:數據類型[] 數組名稱 = new 數據類型[數組長度];
			int[] arrayA = new int[300];
			
			//創建一個數組,能存放10個double類型的數據
			double[] arrayB = new double[10];
			
			//創建一個數組,能存放5個字符串
			String[] arrayC = new String[5];
		}
	
	}
	
	
	
	/*
	動態初始化:在創建數組的時候,直接指定數組當中數據元素的個數
	
	靜態初始化:在創建數組的時候,不直接指定數據個數多少,而是直接將具體的數據內容進行指定
	
	靜態初始化基本格式:
		數據類型[] 數組名稱 = new 數據類型[]{元素1, 元素2, ...};
		
	注意事項:雖然靜態初始化沒有直接告訴長度,但是根據大括號裏面的元素具體內容也可以自動推算出來長度
	*/
	public class Demo02Array {
		public static void main(String[] args) {
			//直接創建一個數組,裏面裝的全都是int數字,具體爲:5、15、25
			int[] arrayA = new int[] {5, 15, 25, 40};
			
			//創建一個數組,用來裝字符串:"Hello"、"World"、"Java"
			String[] arrayB = new String[] {"Hello", "World", "Java"};
		}
	
	}
	
		
	
	/*
	使用靜態初始化數組的時候,格式還可以省略一下。
	
	標準格式
		數據類型[] 數組名稱 = new 數據類型[]{元素1, 元素2, ...};
		
	省略格式:
		數據類型[] 數組名稱 = {元素1, 元素2, ...};
	
	注意事項:
		1.靜態初始化沒有直接指定長度,但是仍然會自動推算得到長度
		2.靜態初始化標準格式可以拆分成爲兩個步驟
		3.動態初始化也可以拆分成爲兩個步驟
		4.靜態初始化一旦使用省略格式,就不能拆分成爲兩個步驟了
		
	使用建議:如果不確定數組當中的具體內容,使用動態初始化;否則,已經確定了具體內容,用靜態初始化。
	*/
	public class Demo03Array {
		public static void main(String[] args) {
			//省略格式的靜態初始化
			int[] arrayA = {10, 20, 30};
			
			//靜態初始化的標準格式,可以拆分爲兩個步驟
			int[] arrayB;
			arrayB = new int[] {11, 21, 31};
			
			//動態初始化也可以拆分爲兩個步驟
			int[] arrayC;
			arrayC = new int[5];
			
			//靜態初始化的省略格式,不能拆分成爲兩個步驟
			/*int[] arrayD;
			arrayD = {10, 20, 30};*/
		}
	
	}

四、數組的訪問

1、索引

每一個存儲到數組的元素都會自動地擁有一個編號,從0開始,這個自動編號稱爲數組索引(index),可以通過數組的索引訪問數組中的元素。

2、數組訪問格式

數組名[索引]

3、數組長度屬性

每個數組都具有長度,而且是固定的。Java中賦予了數組的一個屬性,可以獲取得到數組的長度,語句爲:數組名.length,屬性length的執行結果是數組的長度,int類型結果。由此可以推斷出,數組的最大索引值爲數組名.length-1

4、索引訪問數組中的元素

  • 數組名[索引] = 數值,爲數組中的元素賦值

  • 變量 = 數組名[索引],獲取出數組中的元素

5、實例

	/*
	直接打印數組名稱,得到的是數組對應的內存地址哈希值。
	
	訪問數組元素的格式:數組名稱[索引值]
	
	索引值:就是一個int數字,代表數組當中元素的編號。
	
	【注意】索引值從0開始,一直到"數組長度-1"爲止。
	*/
	public class Demo04ArrayUse {
		public static void main(String[] args) {
			//靜態初始化的省略格式
			int[] array = {10, 20, 30};
			
			System.out.println(array); // [I@185d8b6
			
			//打印輸出數組的長度
			System.out.println(array.length);
			
			//直接打印數組當中的元素
			System.out.println(array[0]); // 10
			System.out.println(array[1]); // 20
			System.out.println(array[2]); // 30
			
			//爲數組元素賦值
			array[2] = 100;
			System.out.println(array[2]);
			
			//也可以將數組當中的某一個單個元素賦值交給變量
			int num = array[1];
			System.out.println(num); // 20
		}
	
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章