資源描述:
《java入門學(xué)習(xí)5》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、2.1.什么是數(shù)組首先明確,數(shù)組是一個(gè)很重要的內(nèi)容,非常重要。前面介紹的if結(jié)構(gòu)、循環(huán),解決的都是算法問題。那什么是算法?所謂算法就是流程,像取錢怎么?。坎蹇?,輸入密碼,輸入要取錢的金額,確定。那這個(gè)過程,第一步怎么做,第二步怎么做,判斷還是循環(huán),這就是算法。Pascal之父NicklausWirth說過一句話并因此而得了圖靈獎(jiǎng),這句很經(jīng)典的話就是,程序即為:算法+數(shù)據(jù)結(jié)構(gòu),所謂數(shù)據(jù)結(jié)構(gòu),簡單的說就是把數(shù)據(jù)按照特定的某種結(jié)構(gòu)來保存,設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)是解決問題的前提條件。今天講的數(shù)組,就是最基本的、用得最多的一種數(shù)據(jù)結(jié)構(gòu)。試想下,存儲(chǔ)一個(gè)
2、學(xué)員的成績,可以聲明一個(gè)整型變量score來存儲(chǔ),聲明20個(gè)學(xué)員的考試成績呢?存儲(chǔ)50個(gè)隨機(jī)數(shù)呢?存儲(chǔ)1萬個(gè)帳號(hào)呢?聲明太多的變量,顯然很繁瑣,并且不適合整體的操作。像這種情況,可以使用數(shù)組這種數(shù)據(jù)結(jié)構(gòu)來解決。數(shù)組為相同數(shù)據(jù)類型的元素組成的集合,數(shù)組元素按線性順序排列,所謂線性順序是指除第一個(gè)元素外,每一個(gè)元素都有唯一的前驅(qū)元素;除最后一個(gè)元素外,每一個(gè)元素都有唯一的后繼元素(“一個(gè)跟一個(gè)”),可以通過元素所在位置的順序號(hào)(下標(biāo))做標(biāo)識(shí)訪問每一個(gè)元素(下標(biāo)從0開始,最大到元素個(gè)數(shù)-1),數(shù)組結(jié)構(gòu)如下圖-2所示:圖-2從上圖中可以看出,a[
3、0]即代表第1個(gè)元素,a[1]代表第二個(gè)元素,假設(shè)數(shù)組有5個(gè)元素,則最后一個(gè)元素即為a[5-1]。2.2.數(shù)組的定義2.2.1.定義基本類型數(shù)組聲明數(shù)組的語法為:數(shù)據(jù)類型[]數(shù)組名=new數(shù)據(jù)類型[大小];示例代碼如下:1.int[]arr=newint[10];上面的示例代碼中,int[]為數(shù)組類型,表示數(shù)組中的每一個(gè)元素為int類型;數(shù)組也是在內(nèi)存中用于存儲(chǔ)數(shù)據(jù)的,并且是存儲(chǔ)一組數(shù)據(jù),同樣需要一個(gè)對(duì)它的引用,該引用即為arr,arr稱為數(shù)組類型變量(引用);new為特定的聲明數(shù)組的關(guān)鍵字,后面會(huì)詳細(xì)講解,現(xiàn)在先記住。數(shù)組的聲明必須要有
4、元素個(gè)數(shù),10即為數(shù)組中元素的個(gè)數(shù),也稱為數(shù)組長度??偨Y(jié)下來,定義基本類型數(shù)組的要點(diǎn)包括:1.確切的數(shù)據(jù)類型:用于開辟空間大小2.整體的數(shù)組名字:用于對(duì)數(shù)據(jù)的引用3.不能缺少的“[]”注意在定義數(shù)組時(shí)使用的new關(guān)鍵字,正是因?yàn)閚ew語句,才使得數(shù)組分配到了指定大小的空間(后面詳細(xì)講解)。聲明數(shù)組的時(shí)候,int[]arr與intarr[]兩種寫法均可。常用方式為int[]arr。聲明數(shù)組時(shí)不規(guī)定數(shù)組長度(可以看到聲明時(shí)僅指定了int[],未指定長度),new關(guān)鍵字分配空間時(shí)需指定分配的空間大小(newint[10])。2.3.數(shù)組的初始化
5、2.3.1.初始化數(shù)組基本類型(數(shù)據(jù)元素為基本類型)的數(shù)組創(chuàng)建后,默認(rèn)為其數(shù)組元素設(shè)置了初始值,元素的初始值如下所示:byte、short、char、int、long為0;float和double為0.0;boolean為false。注意,此處強(qiáng)調(diào)的是基本類型數(shù)組的默認(rèn)值,后期會(huì)介紹數(shù)據(jù)元素為非基本類型的,它的默認(rèn)初始值與基本類型不同。在程序中很多時(shí)候需要手動(dòng)設(shè)置初始值,可以在數(shù)組聲明的同時(shí)進(jìn)行初始化,如下代碼所示:1.int[]arr={10,23,30,-10,21};上面的代碼中,元素的個(gè)數(shù)即為數(shù)組的長度。但是此種寫法只能用于聲明時(shí)
6、的初始化,不能用于先聲明后賦值的情況,例如,下面的代碼會(huì)有編譯錯(cuò)誤:1.int[]arr;2.arr={10,23,30,-10,21};對(duì)于已聲明的數(shù)組,可以通過下面的方式對(duì)數(shù)組類型變量進(jìn)行初始化:1.int[]arr;2.arr=newint[]{10,23,30,-10,21};注意:new之后的[]中不可以寫長度,而元素的個(gè)數(shù)就是數(shù)組的長度。2.4.數(shù)組的訪問2.4.1.獲取數(shù)組的長度在程序中,調(diào)用數(shù)組的length屬性可以獲取數(shù)組的長度,如下代碼所示:1.int[]arr=newint[]{3,6,8,9};2.intlen=a
7、rr.length;3.System.out.println(“數(shù)組長度為:”+len);上面的代碼中,len即為數(shù)組的長度,輸出結(jié)果為:“數(shù)組長度為:4”。2.4.2.通過下標(biāo)訪問數(shù)組元素若想訪問數(shù)組中的元素,需要通過下標(biāo)的方式,需要注意的是,數(shù)組的下標(biāo)從0開始,最大到length-1,代碼如下所示:1.int[]arr=newint[]{4,5,6,8};2.inttemp=arr[2];//獲取第3個(gè)元素,即為63.//交換數(shù)組下標(biāo)為2和3的兩個(gè)相鄰元素的值,交互后的結(jié)果為:4,5,8,64.inttemp=arr[2];5.arr
8、[2]=arr[3];6.arr[3]=temp;2.4.3.遍歷數(shù)組元素在實(shí)際的應(yīng)用中,常常需要對(duì)數(shù)組整體進(jìn)行操作,最常見的方式即為遍歷數(shù)組元素,通常可選擇for循環(huán)語句,循環(huán)變量作為訪問數(shù)