




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java程序設(shè)計孟凡超哈爾濱工業(yè)大學(威海)計算機科學與技術(shù)學院辛運幃,饒一梅,馬素霞.Java程序設(shè)計(第二版).清華大學出版社,2006.參考資料第1章概述第2章標識符和數(shù)據(jù)類型第3章表達式和流程控制語句第4章數(shù)組、向量和字符串第5章進一步討論對象和類第6章Java語言中的異常第7章Java的圖形用戶界面設(shè)計第8章Swing組件第9章JavaApplet第10章Java數(shù)據(jù)流第11章線程第12章Java網(wǎng)絡功能課程內(nèi)容4.1數(shù)組4.2
Vector類4.3字符串類型第4章數(shù)組、向量和字符串4.1數(shù)組數(shù)組說明數(shù)組是一個數(shù)據(jù)結(jié)構(gòu),用來存儲相同類型的數(shù)據(jù)。一個數(shù)組是系列的匿名變量,數(shù)組中的元素可以通過下標來訪問。Java將數(shù)組作為對象來處理。類Object中定義的方法都可以用于數(shù)組對象。數(shù)組元素可以是根本類型,也可以是類類型,還可以是數(shù)組。4.1數(shù)組一維數(shù)組的定義type
arrayName[];其中,類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復合類型,數(shù)組名稱arrayName為一個合法的標識符,[]指明該變量是一個數(shù)組類型變量。chars[];//s的每個元素都是char類型的intintArray[];//intArray中的每個元素都是整型的DatedateArray[];//dateArray的每個元素都是復合數(shù)據(jù)類型DatePointpoints[];//points的每個元素都是類Point類型在數(shù)組定義中不為數(shù)組元素分配內(nèi)存,因此方括號[]中不用指出數(shù)組中元素的個數(shù),即數(shù)組的長度。說明并不創(chuàng)立數(shù)組,它們只是引用變量,用來指向一個數(shù)組。4.1數(shù)組一維數(shù)組的定義(另一種方式)Type[]
arrayName;char[]s;//s的每個元素都是char類型的int[]intArray;//intArray中的每個元素都是整型的Date[]dateArray;//dateArray的每個元素都是復合數(shù)據(jù)類//型DatePoint[]points;//points的每個元素都是類Point類型4.1數(shù)組創(chuàng)立數(shù)組定義一個數(shù)組只是對數(shù)組的說明,系統(tǒng)并沒有為數(shù)組分配任何內(nèi)容,因此我們還不能訪問它的任何元素。數(shù)組必須經(jīng)過初始化后才能應用數(shù)組的元素,這個過程就是數(shù)組的創(chuàng)立的過程。數(shù)組的初始化分為:靜態(tài)初始化和動態(tài)初始化。靜態(tài)初始化:定義數(shù)組的同時對數(shù)組元素進行初始化。4.1數(shù)組String
names[]={“Zhang”,“Li”,“Wang”}String
names[];names=newString[3];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;4.1數(shù)組String
names[]=newString[3];//給數(shù)組names分配
//3個應用空間String[]
names=newString[3];//定義String類型數(shù)組動態(tài)初始化:使用運算符new為數(shù)組分配空間。數(shù)組說明的方括號中的數(shù)字表示數(shù)組元素個數(shù)。type[]
arrayName=new
type[arraySize];type
arrayName[]=new
type[arraySize];names[0]=“Zhang”;names[1]=“Li”;names[2]=“Wang”;4.1數(shù)組復合類型數(shù)組使用運算符new為只是為數(shù)組本身分配空間,并沒有對數(shù)組的元素進行初始化。對于復合類型的數(shù)組,需要經(jīng)過兩步進行空間分配:創(chuàng)立數(shù)組本身:typearrayName[]=newtype[arraySize];創(chuàng)立各個數(shù)組元素:arrayName[0]=newtype(paramList);arrayName[1]=newtype(paramList);……arrayName[arraySize-1]=newtype(paramList);4.1數(shù)組//創(chuàng)立有3個Point型的數(shù)組Pointpoint[]=newPoint[3];//創(chuàng)立3個Point型的數(shù)組元素point[0]=newPoint();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動態(tài)分配的。該寫法是錯誤的:int
intArray[5];Object[]
point;point=newPoint[3];Point[]
point;point=newObject[3];4.1數(shù)組數(shù)組邊界數(shù)組下標從0開始,數(shù)組中的元素個數(shù)length是數(shù)組類中的唯一數(shù)據(jù)成員變量。使用new創(chuàng)立數(shù)組時系統(tǒng)自動給length賦值。數(shù)組一旦創(chuàng)立完畢,其大小就固定下來。int[]
list=new
int[10];for(inti=0;i<list.length;i++){//循環(huán)體代碼}4.1數(shù)組數(shù)組元素的引用當定義了一個數(shù)組,并用運算符new為它分配了內(nèi)存空間后,就可以引用數(shù)組中的每一個元素了。數(shù)組名加上下標就可以表示數(shù)組元素,元素的應用格式為:arrayName[index];例如,arrayName[0],arrayName[i]當創(chuàng)立一個數(shù)組時,每個元素都被初始化。例如,字符型數(shù)組的每個值被初始化為0(\0000),而Point型數(shù)組的每個值被初始化圍null。4.1數(shù)組多維數(shù)組多維數(shù)組的定義
Java中沒有真正的多維數(shù)組,但因為數(shù)組元素可以說明為任何類型,所以可以建立數(shù)組的數(shù)組(的數(shù)組……),由此得到多維數(shù)組。一般來講,n維數(shù)組是n-1維數(shù)組的數(shù)組。說明數(shù)組時使用類型及多對方括號。例如,int[][]是類型,它表示二維數(shù)組。type
arrayName[][];type[][]
arrayName;二維數(shù)組的定義:4.1數(shù)組int
intarray[][];Int[][]
intarray;與一維數(shù)組一樣,定義時對數(shù)組元素沒有分配內(nèi)存空間,需要使用new運算符來分配內(nèi)存,然后才可以訪問每個元素。三維數(shù)組定義:type
arrayName[][][];type[][][]
arrayName;4.1數(shù)組多維數(shù)組的初始化靜態(tài)初始化:int[][]
intArray={{2,3},{1,5},{3,4}};intArray為一個3行2列的數(shù)組231534最外層括號所包含的元素是數(shù)組的第一維的各元素;最內(nèi)層括號對應于數(shù)組最后一維。4.1數(shù)組123456789101112使用兩個下標可以訪問數(shù)組中的任一元素,例如,intArray1[0][0]
//表示第1行第1列元素1intArray1[1][3]//表示第2行第4列元素74.1數(shù)組動態(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ù)組中的每個元素。多維數(shù)組的引用方式為(以二維為例):arrayName[index1][index2]int
intArray[][]=newint[3][4];intArray[0][0]=1;intArray[0][1]=2;intArray[0][2]=3;4.1數(shù)組數(shù)組復制將elements中第1個(下標為0)到第elements.length個元素依次放到hold中下標從0開始的各個位置,即第1位到第5位。執(zhí)行完畢,數(shù)組hold的內(nèi)容為:1,2,3,4,5,11,124.2Vector類Java中的數(shù)組只能保存固定數(shù)目的元素,且必須把所有需要的內(nèi)存單元一次性的申請出來,而不能先創(chuàng)立數(shù)組再追加數(shù)組元素數(shù)量,為了解決這個問題Java中引入了向量類Vector。Vector也是一組對象的集合,但相對于數(shù)組,Vector可以追加對象元素數(shù)量,可以方便的修改和維護序列中的對象。4.2Vector類1向量(Vector)Vector是java.util類包提供一個工具類。Vector對應于類似數(shù)組的順序存儲的數(shù)據(jù)結(jié)構(gòu),但是具有比數(shù)組更強大的功能。它允許不同類型元素共存的變長數(shù)組。每個Vector類的對象可以表達一個完整的數(shù)據(jù)序列。Vector類的對象不但可以保存順序的一列數(shù)據(jù),而且還可以提供了許多有用的方法來操作和處理這些數(shù)據(jù)。Vector類的對象所表達的序列中元素的個數(shù)是可變的,即Vector實現(xiàn)了變長數(shù)組。4.2Vector類向量比較適合在如下情況使用:需要處理的對象數(shù)組不定,序列中的元素都是對象或可以表示為對象。需要將不同類的對象組合成一個數(shù)據(jù)序列。需要做頻繁的對象序列中元素的插入和刪除。經(jīng)常需要定位序列中的對象和其他查找操作。在不同的類之間傳遞大量的數(shù)據(jù)。Vector類的局限性是其中的對象不能是簡單數(shù)據(jù)類型。4.2Vector類Vector類的構(gòu)造方法public
Vector():構(gòu)造一個空向量。publicVector(intinitialCapacity):以指定的初始存儲容量initialCapacity構(gòu)造一個空向量vector。publicVector(intinitialCapacity,intcapacityIncrement):以指定的初始存儲容量initialCapacity和容量增量capacityIncrement構(gòu)造一個空向量vector。4.2Vector類Vector
MyVector=newVector(100,50);該語句創(chuàng)立的MyVector向量序列初始有100個元素空間,以后一旦空間用盡那么以50為單位遞增,使序列中元素的個數(shù)變化成150,200,…。在創(chuàng)立Vector序列時,不需要指明序列中元素的類型,可以在使用時確定。4.2Vector類Vector類對象的操作元素的添加addElement(Objectobj):將新元素添加到序列尾部。insertElementAt(Objectobj,intindex):將指定對象obj插入指定位置index位置。VectorMyVector=newVector();for(inti=1;i<=10;i++){MyVector.addElement(newRandom());}MyVector.insertElementAt("middle",5);4.2Vector類元素的刪除setElementAt(Objectobj,intindex):將向量序列index位置處的對象元素設(shè)置為obj,如果這個位置原來有元素,那么將被新值覆蓋。removeElement(Objectobj):刪除向量序列中第一個與指定的obj對象相同的元素,同時將后面的元素向前提,補上空位。removeElement(intindex):刪除index指定位置處的元素,同時將后面的元素向前提。removeAllElements():去除向量序列中的所有元素,同時向量的大小置為0。4.2Vector類元素的查找ObjectelementAt(intindex):返回指定位置處的元素。這個方法返回值是Object類型的對象,在使用之前通常需要進行強制類型轉(zhuǎn)換,將返回的對象引用轉(zhuǎn)換成Object類的某個具體子類對象。booleancontains(Objectobj):檢查向量序列中是否包含指定的對象元素obj。intindexOf(Objectobj,intstart_index):從指定的start_index位置開始向后搜索,返回所找到的第一個與指定對象obj相同的元素的下標位置。假設(shè)指定的對象不存在,那么返回-1。intlastIndexOf(Objectobj,intstart_index):從指定的start_index位置開始向前搜索,返回所找到的第一個與指定對象obj相同的元素的下標位置。假設(shè)指定的對象不存在,那么返回-1。4.2Vector類Vector類中的其他方法publicfinalintsize():返回向量中的元素數(shù)量。publicfinalbooleancontains(Objectelem):如果對象elem是向量中的一個元素值,那么返回true,否那么返回false。publicfinalintindexOf(Objectelem):從向量的第一個元素開始查找指定對象,并返回該對象的索引值。capacity():返回Vector的容量。clone():建立Vector的備份。copyInto(Object[]):把Vector中的元素復制到一個數(shù)組中。4.2Vector類firstElement():返回第一個元素。lastElement():返回最后一個元素。isEmpty():判斷是否為空。setSize():設(shè)置Vector的大小。trimToSize():將Vector的容量下調(diào)至最小值。4.3字符串類型字符串是內(nèi)存中連續(xù)排列的一個或多個字符。Java提供的標準包java.lang中封裝了類String和StringBuffer,分別用來處理不變字符串和可變字符串。不變字符串是指一旦創(chuàng)立,其內(nèi)容就不能改變。對于那些需要改變內(nèi)容并有許多操作的字符串,可以使用StringBuffer。4.3字符串類型字符串說明及初始化Java中的字符串分為常量和變量兩種。系統(tǒng)為程序中出現(xiàn)的字符串常量自動創(chuàng)立一個String對象,如:System.out.println(“HelloWorld!”);將創(chuàng)立“HelloWorld!”對象,這個創(chuàng)立是隱含的。對于字符串變量,在使用之前要顯式說明,并進行初始化。String
s;StringBuffersb1;Strings1=newString();char
chars[]={‘a(chǎn)’,’b’,’c’};Strings2=newString(chars);Strings3=“abc”;4.3字符串類型字符串處理String類中常用的方法:length():返回字符串中的字符個數(shù)。charAt(intindex):
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路路政合同范例
- 冷藏貨車租賃合同范例
- 仿瓷工程合同標準文本
- 全職清洗服務合同范例
- 失神癲癇的健康宣教
- 出售汽車合同標準文本
- 代理購買股權(quán)合同范例
- 供貨施工合作合同范例
- 分期付款買廠房合同范例
- 單位材料采購合同范例
- 萬以內(nèi)數(shù)的認識(數(shù)數(shù) 例3)(教案)2024-2025學年數(shù)學 二年級下冊 西師大版
- 文物修復與保護基礎(chǔ)知識單選題100道及答案解析
- 2024年晉中職業(yè)技術(shù)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 售電知識培訓
- (課件)-生物專業(yè)英語BIOLOGICALENGLISH
- 湖北省武漢市2024-2025學年度高三元月調(diào)考英語試題(含答案無聽力音頻有聽力原文)
- (2025)新《公司法》知識競賽題庫(附含參考答案)
- 木僵狀態(tài)病因介紹
- DB37T5299-2024建設(shè)工程文明施工標準
- 勵志班會:學習雖苦但請珍惜 課件
- T-CSUS 69-2024 智慧水務技術(shù)標準
評論
0/150
提交評論