1、創建數組的三種方式:
①動態初始化:數組的初始化和數組元素的賦值操作分開進行
dataType[ ] arrayRefVar = new dataType [ arraySize ] ;
Emp [] emps=new Emp[3]; Emp emp1=new Emp(null,"a1",12,"0"); Emp emp2=new Emp(null,"aa2",13,"1"); Emp emp3=new Emp(null,"aaa3",14,"0"); emps[0]=emp1; emps[1]=emp2; emps[2]=emp3;
②類型推斷: dataType[ ] arrayRefVar = { value1,value2,..., valueN };
Emp emp1 = new Emp(null, "a", 23, "男"); Emp emp2 = new Emp(null, "aa", 23, "男"); Emp emp3 = new Emp(null, "aaa", 23, "男"); Emp[] emps = {emp1, emp2, emp3};
③靜態初始化:數組的初始化和數組元素的賦值操作同時進行
dataType[ ] arrayRefVar = new dataType [ ] {value1,value2,..., valueN };
Emp emp11=new Emp(8,"sdh",133,"1"); Emp emp22=new Emp(9,"sds",134,"0"); Emp[] emps11 = new Emp[] {emp11,emp22};
總結:有且總有一個體現元素個數的位置
2、數組的特點:
①數組是序排列的
②數組屬於引用數據類型的變量。數組的元素,既可以是基本數據類型,也可以是引用數據類型
③創建數組對象會在內存中開辟一整塊連續的空間
④數組的長度一旦確定,就不能修改。
3、數組的分類:
① 維數:一維數組、二維數組、。。。
② 數組元素的類型:基本數據類型元素的數組、引用數據類型元素的數組
4、一維數組元素的默認初始化值
> 數組元素是整型:0
> 數組元素是浮點型:0.0
> 數組元素是char型:0或'\u0000',而非'0'
> 數組元素是boolean型:false
> 數組元素是引用數據類型:null
5、數組常見的異常類型
①.數組角標越界異常:ArrayIndexOutOfBoundsException
②.空指針異常:NullPointerException
二維數組的聲明與初始化 正確的方式: int[] arr = new int[]{1,2,3};//一維數組 //靜態初始化 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}}; //動態初始化1 String[][] arr2 = new String[3][2]; //動態初始化2 String[][] arr3 = new String[3][]; //也是正確的寫法: int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}}; int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//類型推斷
二維數組元素的默認初始化值
* 規定:二維數組分為外層數組的元素,內層數組的元素
* int[][] arr = new int[4][3];
* 外層元素:arr[0],arr[1]等
* 內層元素:arr[0][0],arr[1][2]等
*
* 數組元素的默認初始化值
* 針對於初始化方式一:比如:int[][] arr = new int[4][3];
* 外層元素的初始化值為:地址值
* 內層元素的初始化值為:與一維數組初始化情況相同
*
* 針對於初始化方式二:比如:int[][] arr = new int[4][];
* 外層元素的初始化值為:null
* 內層元素的初始化值為:不能調用,否則報錯。
Arrays 類
java.util.Arrays 類能方便地操作數組,它提供的所有方法都是靜態的。
具有以下功能:
- 給數組賦值:通過 Arrays.fill 方法。
- 對數組排序:通過 Arrays.sort 方法,按升序。
- 比較數組:通過 Arrays.equals 方法比較數組中元素值是否相等。
- 查找數組元素:通過 Arrays.binarySearch 方法能對排序好的數組進行二分查找法操作
- 將數組變成字符串(public static String toString(數組))Arrays.toString()