1.數(shù)組的定義:
? ?元素的類型[]變量名;? 可以存儲(chǔ)一組數(shù)據(jù)
???int[] ages;??? 此時(shí):可以把int[]看做是一種數(shù)據(jù)類型,int的數(shù)組類型.
?????????????????此時(shí)代表含義:ages數(shù)組中可以存放多個(gè)int類型的值/變量.
???定義的另外一種方式:
???元素的類型 變量名 [];
???int ages[]; 非常不推薦
2.數(shù)組的初始化操作:開辟內(nèi)存空間,存儲(chǔ)數(shù)據(jù).
數(shù)組必須先初始化才能使用.
?當(dāng)數(shù)組初始化之后,數(shù)組的長度就已經(jīng)確定了,不能更改.
靜態(tài)初始化:
????????????程序員自己設(shè)置需要存儲(chǔ)的數(shù)據(jù)(元素),而數(shù)組的長度由系統(tǒng)決定. ??
??????????? 語法:
??????????? 元素類型[]數(shù)組名稱 = new 元素類型[]{元素1,元素2,元素3,....};
??????????? 如:
??????????? int[]nums = new int[]{1,3,5,7,9};
??????????? 更簡單的語法:
??????????? int[] nums = {1,3,5,7,9};
動(dòng)態(tài)初始化:
?????????程序員指定數(shù)組的長度,而數(shù)組的元素的默認(rèn)值由系統(tǒng)決定.
??????????? 語法:
??????????? 元素類型[]數(shù)組名稱 = new 元素類型[length];
??????????? 如:
??????????? int[]nums = new int[5];
如果事先知道需要存儲(chǔ)哪些數(shù)據(jù),---->使用靜態(tài)初始化.
若事先不知道存儲(chǔ)哪些數(shù)據(jù)--------->動(dòng)態(tài)初始化.
3.數(shù)組的基本操作
????0):打印數(shù)組對(duì)象,會(huì)打印出數(shù)組的hashCode值,看不出來數(shù)組元素值.
? ? 1):獲取/設(shè)置/遍歷元素元素:
????? 獲取數(shù)組元素值:???? 數(shù)組元素類型 變量 =?? 數(shù)組名[index];
????? 設(shè)置數(shù)組元素值:???? 數(shù)組名[index] = 值;
????? 迭代數(shù)組元素:?????? 使用循環(huán),一般的,首選for循環(huán).
?????2):數(shù)組的長度(使用length屬性):
?????? int len = 數(shù)組名.length;//獲取當(dāng)前數(shù)組有幾個(gè)元素個(gè)數(shù)
?????3):數(shù)組的索引從0開始,逐一遞增.
????? 數(shù)組索引的范圍:[0,數(shù)組長度-1]
?4):操作數(shù)組常見異常(錯(cuò)誤):
????? ArrayIndexOutOfBoundsException:數(shù)組的索引越界,不在索引范圍之內(nèi).
????? NullPointerException:空引用異常,操作了一個(gè)為null的數(shù)組變量.
?5):獲取數(shù)組最大最小元素
??????? 求最大值: getMax
??????? 求最小值: getMin
??6):打印數(shù)組元素:
????期望:打印格式:[A,B, C, D, E]
?7):逆序排列數(shù)組元素:
????[A, B, C, D, E]--->[E, D, C, B, A]
? 8):元素出現(xiàn)索引(第一次/最后一次)