陣列的定義及其使用-一維陣列
陣列的定義
陣列是相同型別資料的有序集合
陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成
其中,每一個數據稱作一個數組元素,每個陣列元素可以通過一個下標來訪問她們。
陣列的宣告建立
首先必須宣告陣列變數,才能在程式中使用陣列。下面是宣告陣列變數的語法:
dataType[] arrayRefVar //首選的方法
或
dataType arrayRefVar[] //效果相同
Java語言使用new操作符來建立陣列,語法如下:
dataType[] arrayRefVar = new dataType[arraySize];
陣列的元素是通過索引來訪問的,陣列索引從0開始。
獲取陣列長度:arrays.length
Java記憶體分析
Java記憶體
堆
存放new的物件和陣列
可以被所有的執行緒共享,不會存放別的物件引用
棧
存放基本變數型別(會包含這個基本型別的具體資料)
引用物件的變數(會存放這個引用在堆裡面的具體地址)
方法區
可以被所有的現場共享
包含了所有的class和static變數
三種初始化
靜態初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1), new Man(2,2)};
動態初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
陣列的預設初始化
陣列是引用型別,他的元素相當於類的例項變數,因此陣列一經分配空間,其中的每個元素也被按照例項變數統一的方式被隱式初始化
public class ArrayDemo03 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //列印全部陣列元素 for (int i = 0; i < arrays.length; i++){ System.out.println(arrays[i]); } System.out.println("=================="); //計算所有陣列元素的和 int sum = 0; for(int i = 0; i < arrays.length; i++){ sum+=arrays[i]; } System.out.println("sum="+sum); System.out.println("=================="); //查詢最大元素 int max = arrays[0]; for(int i = 0; i < arrays.length; i++){ if(max < arrays[i]){ max = arrays[i]; } } System.out.println("最大值是:"+max); }
陣列的四個基本特點
其長度是確定的。陣列一旦被建立,它的大小就是不可改變的。
其元素必須是相同型別,不允許出現混合型別。
陣列中的元素可以是任何資料型別,包括基本型別和引用型別。
陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數。
陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始類型別還是其他物件型別,陣列物件本身是在堆中的。
陣列引用
package com.sanwin.array;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
// for (int array : arrays) {
// System.out.println(array);
// }
System.out.println("==============");
printArrays(arrays);
System.out.println("--------------");
int[] aa = reverse(arrays);
printArrays(aa);
}
//列印陣列
public static void printArrays(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + " ");
}
}
//反轉陣列
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
//反轉的操作
for(int i = 0, j= result.length-1; i <arrays.length ; i++,j--){
result[j] = arrays[i];
}
return result;
}
}
陣列小結
陣列是相同資料型別(可以為任意型別)的有序集合
陣列也是物件。陣列元素相當於物件的成員變數
陣列長度的確定的,不可變的,如越界,則報:ArrayIndexOutofBounds