自己得理解:數組一旦定義沒有添加和刪除得方法,印證了數組一旦定義數組得長度就固定了,如有
增刪方法 則會導致數組得長度發生改變
- 數組得聲明和定義
package day7.demo1; /* 一:素組的特點 1.長度固定:沒用增加只有賦值的方法,刪除的方法 2.類型統一 3.存放引用數據類型 數組的創建(初始化)基本格式(標准格式) 二.動態初始化(告訴我指定長度) 數據類型[] 數組名=new 數據類型 [長度值]; 如果為正數類型類型 那么默認為0 如果為浮點類型類型 那么默認為0.0 如果為字符串類型 那么默認為‘\u0000’ 如果為布爾類型 那么默認為false 如果為引用類型 那么默認為null 三.靜態初始化(告訴我指定內容) 數據類型[] 數組名稱=new 數據類型 [] {元素1,元素2,元素3} 靜態的初始化:先有默認值,{元素1,元素2,元素3}覆蓋默認值 數組的創建(初始化)省略格式 四.靜態初始化(告訴我指定內容) 數據類型[] 數組名稱={元素1,元素2,元素3} 數組的打印:內存地址哈希值 二進制:01 十進制:0123456789 16進制:0123456789abcdef 五:數組常見得異常 System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException數組索引越界異常 int [] arraynull=null; System.out.println(arraynull[0]);//NullPointerException空指針異常 * */ public class Demo1Array { public static void main(String[] args) { //========聲明和定義===================================== //數組是容器,可存儲多個數據,變量只能存放1個數據 //1.動態初始化 int [] arrayA=new int [5]; //動態初始化拆分為兩部分寫 int [] arrayA1; arrayA1=new int [5]; //2.靜態初始化 int [] arrayB=new int [] {1,2,3,4,5}; //靜態初始化拆分為兩部分寫 int [] arrayB1; arrayB1=new int [] {10,20,30,40}; //3.靜態初始化省略格式,不能拆分倆個部分寫 int [] arrayC={11,22,33,44,55}; //打印array ,[I@1540e19d I表示int System.out.println(arrayC); //訪問元素 int num1=arrayC[0]; System.out.println(num1); }
2.數組中常用得方法
package day7.demo1; public class Demo1Array { public static void main(String[] args) { //1.定義.靜態初始化省略格式,不能拆分倆個部分寫 int [] arrayC={11,22,33,44,55}; // 1.=======================改變數組中的元素 arrayC[0]=123; //2.=======================數組長度 int arraylength=arrayC.length; //3.遍歷數組:如數組中有5個元素,那么輸出下標未0,1,2,3,4,得輸出5次,才能輸出完畢,剛好int i = 0;i <arrayC.length能執行5次 //快捷建:循環次數.fori 如5.fori for (int i = 0;i <arrayC.length ; i++) { System.out.println(arrayC[i]); } //4..=======================求數組中得最大值得方法:和比武招親得列子相同,第一個人是留在擂台上得,留在擂台上得人就是maxvule, // 參數得每一個人都要和台上得maxvule比較,如果比maxvule和厲害,那么maxvule這個頭銜就是那個人得 int maxvule=arrayC[0]; for (int i = 1; i <arrayC.length ; i++) { if (arrayC[i]>maxvule){ maxvule=arrayC[i]; } } System.out.println("最大值是: "+maxvule); //5.=======================數組元素得反轉,不能使用新數組,就只能使用唯一得數組 //思路 for (int i = 0; i < arrayC.length; i++) { System.out.println("反轉前: "+arrayC[i]); } //反轉代碼: for (int minindex=0,maxindex =arrayC.length; minindex<maxindex ; minindex++,maxindex--) { int temp=arrayC[minindex]; arrayC[minindex]=arrayC[maxindex]; arrayC[maxindex]=temp; } //6.調用帶數組參數得方法 int [] arraytests={10,20,21,22,23,23}; utarray(arraytests);//傳遞得是數組得地址 //7.調用返回值是數組得方法 int [] result=js(arraytests); System.out.println("合計"+result[0]+"平均值"+result[1]); } //6.=======================定義參數是數組得方法,傳遞進來得參數是一個地址值 public static void outarray (int [] array ){ System.out.println("接收到得參數是 "+ array); for (int i = 0;i<array.length; i++) { System.out.println(array[i]); } } //7.=======================定義一個方法得返回值是數組得方法 public static int [] js (int [] array ){ int sum=0; for (int i = 0; i < array.length; i++) { sum+=array[i]; } int avg=sum/array.length; int [] result={sum,avg}; return result; } }
3.數組中得常見異常
package day7.demo1; public class Demo1Array { public static void main(String[] args) { //3.靜態初始化省略格式,不能拆分倆個部分寫 int [] arrayC={11,22,33,44,55}; //========常見異常===================================== //數組常見問題: System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException數組索引越界異常 int [] arraynull=null; System.out.println(arraynull[0]);//NullPointerException空指針異常ma } }