付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計(jì)孟凡超哈爾濱工業(yè)大學(xué)(威海)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
第1章概述第2章標(biāo)識(shí)符和數(shù)據(jù)類型第3章表達(dá)式和流程控制語句第4章數(shù)組、向量和字符串第5章進(jìn)一步討論對(duì)象和類第6章Java語言中的異常第7章Java的圖形用戶界面設(shè)計(jì)第8章Swing組件第9章JavaApplet第10章Java數(shù)據(jù)流第11章線程第12章Java網(wǎng)絡(luò)功能課程內(nèi)容4.1數(shù)組4.2
Vector類4.2*Java中的容器4.3字符串類型第4章數(shù)組、向量和字符串4.1數(shù)組1數(shù)組說明數(shù)組是一個(gè)數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)相同類型的數(shù)據(jù)。一個(gè)數(shù)組是系列的匿名變量,數(shù)組中的元素可以通過下標(biāo)來訪問。Java將數(shù)組作為對(duì)象來處理。類Object中定義的方法都可以用于數(shù)組對(duì)象。數(shù)組元素可以是基本類型,也可以是類類型,還可以是數(shù)組。4.1數(shù)組一維數(shù)組的定義type
arrayName[];其中,類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復(fù)合類型,數(shù)組名稱arrayName為一個(gè)合法的標(biāo)識(shí)符,[]指明該變量是一個(gè)數(shù)組類型變量。chars[];//s的每個(gè)元素都是char類型的intintArray[];//intArray中的每個(gè)元素都是整型的DatedateArray[];//dateArray的每個(gè)元素都是復(fù)合數(shù)據(jù)類型DatePointpoints[];//points的每個(gè)元素都是類Point類型在數(shù)組定義中不為數(shù)組元素分配內(nèi)存,因此方括號(hào)[]中不用指出數(shù)組中元素的個(gè)數(shù),即數(shù)組的長度。說明并不創(chuàng)建數(shù)組,它們只是引用變量,用來指向一個(gè)數(shù)組。4.1數(shù)組一維數(shù)組的定義(另一種方式)Type[]
arrayName;char[]s;//s的每個(gè)元素都是char類型的int[]intArray;//intArray中的每個(gè)元素都是整型的Date[]dateArray;//dateArray的每個(gè)元素都是復(fù)合數(shù)據(jù)類//型DatePoint[]points;//points的每個(gè)元素都是類Point類型4.1數(shù)組2創(chuàng)建數(shù)組定義一個(gè)數(shù)組只是對(duì)數(shù)組的說明,系統(tǒng)并沒有為數(shù)組分配任何內(nèi)容,因此我們還不能訪問它的任何元素。數(shù)組必須經(jīng)過初始化后才能應(yīng)用數(shù)組的元素,這個(gè)過程就是數(shù)組的創(chuàng)建的過程。數(shù)組的初始化分為:靜態(tài)初始化和動(dòng)態(tài)初始化。靜態(tài)初始化:定義數(shù)組的同時(shí)對(duì)數(shù)組元素進(jìn)行初始化。4.1數(shù)組String
names[]={“Zhang”,“Li”,“Wang”}String
names[];names=newString[3];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;等價(jià)于4.1數(shù)組String
names[]=newString[3];//給數(shù)組names分配
//3個(gè)應(yīng)用空間String[]
names=newString[3];//定義String類型數(shù)組動(dòng)態(tài)初始化:使用運(yùn)算符new為數(shù)組分配空間。數(shù)組說明的方括號(hào)中的數(shù)字表示數(shù)組元素個(gè)數(shù)。type[]
arrayName=new
type[arraySize];type
arrayName[]=new
type[arraySize];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;4.1數(shù)組復(fù)合類型數(shù)組使用運(yùn)算符new為只是為數(shù)組本身分配空間,并沒有對(duì)數(shù)組的元素進(jìn)行初始化。對(duì)于復(fù)合類型的數(shù)組,需要經(jīng)過兩步進(jìn)行空間分配:創(chuàng)建數(shù)組本身:type
arrayName[]=new
type[arraySize];創(chuàng)建各個(gè)數(shù)組元素:
arrayName[0]=newtype(paramList);arrayName[1]=newtype(paramList);……arrayName[arraySize-1]=newtype(paramList);4.1數(shù)組//創(chuàng)建有3個(gè)Point型的數(shù)組Pointpoint[]=newPoint[3];//創(chuàng)建3個(gè)Point型的數(shù)組元素point[0]=new
Point();point[1]=newPoint();point[2]=newPoint();4.1數(shù)組Point[]
point;pointpoint=newPoint[10];...........point.length:10..........point.length:10point[0]=newPoint();point[1]=newPoint();x:y:x:y:4.1數(shù)組Java中沒有靜態(tài)數(shù)組定義,數(shù)組的內(nèi)存都是通過new動(dòng)態(tài)分配的。該寫法是錯(cuò)誤的:int
intArray[5];Object[]
point;point=newPoint[3];Point[]
point;point=newObject[3];4.1數(shù)組3數(shù)組邊界數(shù)組下標(biāo)從0開始,數(shù)組中的元素個(gè)數(shù)length是數(shù)組類中的唯一數(shù)據(jù)成員變量。使用new創(chuàng)建數(shù)組時(shí)系統(tǒng)自動(dòng)給length賦值。數(shù)組一旦創(chuàng)建完畢,其大小就固定下來。int[]
list=new
int[10];for(inti=0;i<list.length;i++){//循環(huán)體代碼}4.1數(shù)組4數(shù)組元素的引用當(dāng)定義了一個(gè)數(shù)組,并用運(yùn)算符new為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個(gè)元素了。數(shù)組名加上下標(biāo)就可以表示數(shù)組元素,元素的應(yīng)用格式為:arrayName[index];例如,arrayName[0],arrayName[i]當(dāng)創(chuàng)建一個(gè)數(shù)組時(shí),每個(gè)元素都被初始化。例如,字符型數(shù)組的每個(gè)值被初始化為0(\0000),而Point型數(shù)組的每個(gè)值被初始化圍null。4.1數(shù)組例.隨機(jī)生成n個(gè)整數(shù)存入一維數(shù)組中,并求出最大值和最小值。4.1數(shù)組5多維數(shù)組多維數(shù)組的定義
Java中沒有真正的多維數(shù)組,但因?yàn)閿?shù)組元素可以說明為任何類型,所以可以建立數(shù)組的數(shù)組(的數(shù)組……),由此得到多維數(shù)組。一般來講,n維數(shù)組是n-1維數(shù)組的數(shù)組。說明數(shù)組是使用類型及多對(duì)方括號(hào)。例如,int[][]是類型,它表示二維數(shù)組。type
arrayName[][];type[][]
arrayName;二維數(shù)組的定義:4.1數(shù)組int
intarray[][];int[][]
intarray;與一維數(shù)組一樣,定義時(shí)對(duì)數(shù)組元素沒有分配內(nèi)存空間,需要使用new運(yùn)算符來分配內(nèi)存,然后才可以訪問每個(gè)元素。三維數(shù)組定義:type
arrayName[][][];type[][][]
arrayName;4.1數(shù)組多維數(shù)組的初始化靜態(tài)初始化:int[][]
intArray={{2,3},{1,5},{3,4}};intArray為一個(gè)3行2列的數(shù)組231534最外層括號(hào)所包含的元素是數(shù)組的第一維的各元素;最內(nèi)層括號(hào)對(duì)應(yīng)于數(shù)組最后一維。4.1數(shù)組123456789101112使用兩個(gè)下標(biāo)可以訪問數(shù)組中的任一元素,例如,intArray1[0][0]
//表示第1行第1列元素1intArray1[1][3]//表示第2行第4列元素74.1數(shù)組動(dòng)態(tài)初始化:int[][]
intArray=new
type[arraylength1][arraylength2];type
arrayN[][]=new
type[arraylength1][];arrayN[0]=newtype[arraylength2];arrayN[1]=newtype[arraylength2];…arrayN[arraylenth1-1]=newtype[arraylength2];方法1:直接為每一維分配空間方法2:多維數(shù)組可以從高維起,分別為每一維分配內(nèi)存。4.1數(shù)組1234567891011124.1數(shù)組多維數(shù)組的引用在定義并初始化多維數(shù)組后,可以使用多維數(shù)組中的每個(gè)元素。多維數(shù)組的引用方式為(以二維為例):arrayName[index1][index2]int
intArray[][]=newint[3][4];intArray[0][0]=1;intArray[0][1]=2;intArray[0][2]=3;4.1數(shù)組例.使用動(dòng)態(tài)建立二維數(shù)組的方式輸出n行楊輝三角形。n/k012345678…01111212131331414641515101051616152015617172135352171818285670562881...…………………………4.1數(shù)組4.1數(shù)組6數(shù)組復(fù)制將elements中第1個(gè)(下標(biāo)為0)到第elements.length個(gè)元素依次放到hold中下標(biāo)從0開始的各個(gè)位置,即第1位到第5位。執(zhí)行完畢,數(shù)組hold的內(nèi)容為:1,2,3,4,5,11,124.2Vector類Java中的數(shù)組只能保存固定數(shù)目的元素,且必須把所有需要的內(nèi)存單元一次性的申請(qǐng)出來,而不能先創(chuàng)建數(shù)組再追加數(shù)組元素?cái)?shù)量,為了解決這個(gè)問題Java中引入了向量類Vector。Vector也是一組對(duì)象的集合,但相對(duì)于數(shù)組,Vector可以追加對(duì)象元素?cái)?shù)量,可以方便的修改和維護(hù)序列中的對(duì)象。4.2Vector類1向量(Vector)Vector是java.util類包提供一個(gè)工具類。Vector對(duì)應(yīng)于類似數(shù)組的順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),但是具有比數(shù)組更強(qiáng)大的功能。它允許不同類型元素共存的變長數(shù)組。每個(gè)Vector類的對(duì)象可以表達(dá)一個(gè)完整的數(shù)據(jù)序列。Vector類的對(duì)象不但可以保存順序的一列數(shù)據(jù),而且還可以提供了許多有用的方法來操作和處理這些數(shù)據(jù)。Vector類的對(duì)象所表達(dá)的序列中元素的個(gè)數(shù)是可變的,即Vector實(shí)現(xiàn)了變長數(shù)組。4.2Vector類向量比較適合在如下情況使用:需要處理的對(duì)象數(shù)組不定,序列中的元素都是對(duì)象或可以表示為對(duì)象。需要將不同類的對(duì)象組合成一個(gè)數(shù)據(jù)序列。需要做頻繁的對(duì)象序列中元素的插入和刪除。經(jīng)常需要定位序列中的對(duì)象和其他查找操作。在不同的類之間傳遞大量的數(shù)據(jù)。4.2Vector類Vector類的構(gòu)造方法public
Vector():構(gòu)造一個(gè)空向量。publicVector(intinitialCapacity):以指定的初始存儲(chǔ)容量initialCapacity構(gòu)造一個(gè)空向量vector。publicVector(intinitialCapacity,intcapacityIncrement):以指定的初始存儲(chǔ)容量initialCapacity和容量增量capacityIncrement構(gòu)造一個(gè)空向量vector。4.2Vector類Vector
MyVector=newVector(100,50);該語句創(chuàng)建的MyVector向量序列初始有100個(gè)元素空間,以后一旦空間用盡則以50為單位遞增,使序列中元素的個(gè)數(shù)變化成150,200,…。在創(chuàng)建Vector序列時(shí),不需要指明序列中元素的類型,可以在使用時(shí)確定。4.2Vector類Vector類對(duì)象的操作元素的添加addElement(Objectobj):將新元素添加到序列尾部。insertElementAt(Objectobj,intindex):將指定對(duì)象obj插入指定位置index位置。VectorMyVector=newVector();for(inti=1;i<=10;i++){MyVector.addElement(newRandom());}MyVector.insertElementAt("middle",5);4.2Vector類元素的刪除setElementAt(Objectobj,intindex):將向量序列index位置處的對(duì)象元素設(shè)置為obj,如果這個(gè)位置原來有元素,則將被新值覆蓋。removeElement(Objectobj):刪除向量序列中第一個(gè)與指定的obj對(duì)象相同的元素,同時(shí)將后面的元素向前提,補(bǔ)上空位。removeElement(int
index):刪除index指定位置處的元素,同時(shí)將后面的元素向前提。removeAllElements():清除向量序列中的所有元素,同時(shí)向量的大小置為0。4.2Vector類元素的查找Object
elementAt(intindex):返回指定位置處的元素。這個(gè)方法返回值是Object類型的對(duì)象,在使用之前通常需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,將返回的對(duì)象引用轉(zhuǎn)換成Object類的某個(gè)具體子類對(duì)象。booleancontains(Objectobj):檢查向量序列中是否包含指定的對(duì)象元素indexOf(Object
obj,intstart_index):從指定的start_index位置開始向后搜索,返回所找到的第一個(gè)與指定對(duì)象obj相同的元素的下標(biāo)位置。若指定的對(duì)象不存在,則返回-1。intlastIndexOf(Objectobj,intstart_index):從指定的start_index位置開始向前搜索,返回所找到的第一個(gè)與指定對(duì)象obj相同的元素的下標(biāo)位置。若指定的對(duì)象不存在,則返回-1。4.2Vector類Vector類中的其他方法publicfinalintsize():返回向量中的元素?cái)?shù)量。publicfinalbooleancontains(Objectelem):如果對(duì)象elem是向量中的一個(gè)元素值,則返回true,否則返回false。publicfinalintindexOf(Objectelem):從向量的第一個(gè)元素開始查找指定對(duì)象,并返回該對(duì)象的索引值。capacity():返回Vector的容量。clone():建立Vector的備份。copyInto(Object[]):把Vector中的元素復(fù)制到一個(gè)數(shù)組中。4.2Vector類firstElement():返回第一個(gè)元素。lastElement():返回最后一個(gè)元素。isEmpty():判斷是否為空。setSize():設(shè)置Vector的大小。trimToSize():將Vector的容量下調(diào)至最小值。4.2*Java中的容器Java中容器分類Collection接口:存放獨(dú)立元素的序列。Map接口:存放key-value型的元素對(duì)。4.2*Java中的容器四個(gè)常用容器:LinkedList:其數(shù)據(jù)結(jié)構(gòu)采用的是鏈表,此種結(jié)構(gòu)的優(yōu)勢是刪除和添加的效率很高,但隨機(jī)訪問元素時(shí)效率較ArrayList類低。ArrayList:其數(shù)據(jù)結(jié)構(gòu)采用的是線性表,此種結(jié)構(gòu)的優(yōu)勢是訪問和查詢十分方便,但添加和刪除的時(shí)候效率很低。HashSet:不允許其中存在重復(fù)的元素,無法添加一個(gè)重復(fù)的元素,利用Hash函數(shù)進(jìn)行了查詢效率上的優(yōu)化。HashMap:提供了key-value的鍵值對(duì)數(shù)據(jù)存儲(chǔ)機(jī)制,可以十分方便的通過鍵值查找相應(yīng)的元素,而且通過Hash散列機(jī)制,查找十分方便。4.2*Java中的容器迭代器迭代器是一個(gè)對(duì)象,它的工作是遍歷并選擇序列中的對(duì)象,而客戶端程序員不必知道或關(guān)心該序列底層的結(jié)構(gòu)。Java中的迭代器Iterator接口,Iterator有3個(gè)基本方法:
publicboolean
hasNext()//是否還有下一元素
publicObjectnext()//得到下一個(gè)元素
publicremove()//移除當(dāng)前元素4.2*Java中的容器4.3字符串類型字符串是內(nèi)存中連續(xù)排列的一個(gè)或多個(gè)字符。Java提供的標(biāo)準(zhǔn)包java.lang中封裝了類String和StringBuffer,分別用來處理不變字符串和可變字符串。不變字符串是指一旦創(chuàng)建,其內(nèi)容就不能改變。對(duì)于那些需要改變內(nèi)容并有許多操作的字符串,可以使用StringBuffer。4.3字符串類型字符串說明及初始化Java中的字符串分為常量和變量兩種。系統(tǒng)為程序中出現(xiàn)的字符串常量自動(dòng)創(chuàng)建一個(gè)String對(duì)象,如:System.out.println(“HelloWorld!”);將創(chuàng)建“HelloWorld!”對(duì)象,這個(gè)創(chuàng)建是隱含的。對(duì)于字符串變量,在使用之前要顯式說明,并進(jìn)行初始化。String
s;StringBuffersb1;Strings1=newString();char
chars[]={‘a(chǎn)’,’b’,’c’};Strings2=newString(chars);Strings3=“abc”;4.3字符串類型字符串處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人體胚胎發(fā)育:增強(qiáng)現(xiàn)實(shí)訓(xùn)練課件
- 評(píng)估報(bào)告內(nèi)部復(fù)審制度
- 要嚴(yán)守值班值守制度
- 2025年洛陽中信醫(yī)院筆試及答案
- 2025年沈陽醫(yī)院事業(yè)編5月考試及答案
- 2025年采編崗位筆試試題及答案
- 2025年城投造價(jià)崗位筆試及答案
- 2025年彭州市事業(yè)單位考試面試及答案
- 2025年教資不需要筆試的面試及答案
- 2025年獨(dú)山子石化筆試及答案
- 2025年一級(jí)造價(jià)工程師《建設(shè)工程技術(shù)與計(jì)量(土建)》真題及答案解析
- 2026年演出經(jīng)紀(jì)人考試題庫500道新版
- 低壓配電維修培訓(xùn)知識(shí)課件
- 肺癌病人術(shù)后疼痛護(hù)理
- 室性心動(dòng)過速課件
- 非法集資知識(shí)培訓(xùn)
- 融資管理辦法國資委
- 第四單元整本書閱讀《林海雪原》讀書筆記統(tǒng)編版語文六年級(jí)下冊
- GB/T 45870.1-2025彈簧測量和試驗(yàn)參數(shù)第1部分:冷成形圓柱螺旋壓縮彈簧
- 巨大胎兒分娩期護(hù)理查房
- 倉庫物料儲(chǔ)存知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論