Java程序設計:5 數組與字符串.part3_第1頁
Java程序設計:5 數組與字符串.part3_第2頁
Java程序設計:5 數組與字符串.part3_第3頁
Java程序設計:5 數組與字符串.part3_第4頁
Java程序設計:5 數組與字符串.part3_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java 程序程序設計設計華南農業大學華南農業大學 教育技術教育技術 第第5章章 數組與字符串數組與字符串Part 1本章知識要點本章知識要點u數組數組、n數組名數組名(數組引用數組引用)n數組元素數組元素n數組長度數組長度a.lengthn常用操作算法實現常用操作算法實現n冒泡排序冒泡排序/選擇排序選擇排序n二分查找二分查找Java程序程序設計設計2u數組類數組類Arrayn排序排序Sortn查找查找binarySearchn內容相等內容相等equals5.2.1 二維數組的定義與創建二維數組的定義與創建uJava語言規定二維數組變量的聲明語法如下:語言規定二維數組變量的聲明語法如下: 數組

2、元素類型數組元素類型 數組型變量名數組型變量名; ; 或者或者 數組元素類型數組元素類型 數組型變量名數組型變量名 ; ; 或者或者 數組元素類型數組元素類型 數組型變量名數組型變量名 ; ; “數組元素類型數組元素類型”為二維數組的元素類型,為二維數組的元素類型, “數組型變量名數組型變量名”為二維數組型變量名稱。為二維數組型變量名稱。 X X Worst One int iArray; float fArray ; double dArray ; Best OnePage.65int intArray = new int105;等價于:等價于:intArray = new int10;fo

3、r (int i = 0; i 10; i+) intArrayi = new int5;二維數組的定義且創建二維數組的定義且創建Page.652. 2. 二維數組的初始化二維數組的初始化 int intArray= 1,2,3,4, 5,6,7,8, 9, 10, 11,12 ; 執行效果:首先創建二維數組,然后,將第執行效果:首先創建二維數組,然后,將第1個個括號中的括號中的4個數值分別賦給第個數值分別賦給第1行的行的4個元素;再個元素;再將第將第2個括號中的個括號中的4個數值分別賦給第個數值分別賦給第2行的行的4個元個元素;最后將第素;最后將第3個括號中的個括號中的4個數值分別賦給第個數

4、值分別賦給第3行的行的4個元素。初始化后的數組元素狀態為:個元素。初始化后的數組元素狀態為:Page.663. 3. 二維數組元素的訪問二維數組元素的訪問 創建二維數組之后,可以通過引用型的二維數組變量對數創建二維數組之后,可以通過引用型的二維數組變量對數組元素進行操作了。二維數組必須用兩個下標惟一地確定組元素進行操作了。二維數組必須用兩個下標惟一地確定元素,第一個下標為行下標,第二個下標為列下標,下標元素,第一個下標為行下標,第二個下標為列下標,下標的起始編號從的起始編號從0 0開始。開始。 int intArray = new int54; 5.2.2 二維數組的長度二維數組的長度u二維數

5、組是元素類型為一維數組的一維數組二維數組是元素類型為一維數組的一維數組 int a = new int34每行元素個數不同的二維數組的創建每行元素個數不同的二維數組的創建float floatArray = new float5 ;for (int i = 0; i 5; i+) floatArrayi = new floati+1; Page.675.3.2 數組的排序數組的排序u排序是計算機程序設計最常用的算法之一。例如,排序是計算機程序設計最常用的算法之一。例如,對某次考試的成績從高到低進行排序;將候選人對某次考試的成績從高到低進行排序;將候選人名單按姓名進行排序等。名單按姓名進行排序等

6、。 Ref:課程網站之:課程網站之“第第5章章 算法基礎算法基礎”1. 冒泡排序冒泡排序u冒泡排序是一種比較簡單的排序算法,基本思路是:冒泡排序是一種比較簡單的排序算法,基本思路是:對對n個數進行升序排序,需要進行個數進行升序排序,需要進行n-1趟比較和交趟比較和交換。換。u例例5-3:使用冒泡排序對:使用冒泡排序對10個整數進行升序排序。個整數進行升序排序。2. 選擇排序選擇排序u選擇排序的基本思想:對選擇排序的基本思想:對n個數進行升序選擇排序個數進行升序選擇排序需要需要n-1趟。趟。u例例5-4:使用選擇排序對:使用選擇排序對10個整數進行升序排序。個整數進行升序排序。 5.3.3 數組

7、的查找數組的查找u查找是指在數組尋找特定元素的過程。例如在一份查找是指在數組尋找特定元素的過程。例如在一份名單中查找有無某個人的名字,在商品列表中查找名單中查找有無某個人的名字,在商品列表中查找有無某件商品等。較簡單的查找算法有兩種:線性有無某件商品等。較簡單的查找算法有兩種:線性查找和二分查找。查找和二分查找。 5.3.3 數組的查找數組的查找u使用二分查找的前提條件是數組元素必須已經排序。使用二分查找的前提條件是數組元素必須已經排序。下面討論假設數組已經按升序排序,要查找的數據下面討論假設數組已經按升序排序,要查找的數據稱為關鍵字。二分查找的基本思想:將關鍵字與數稱為關鍵字。二分查找的基本

8、思想:將關鍵字與數組的中間元素進行比較,則可能有以下三種情況:組的中間元素進行比較,則可能有以下三種情況:n關鍵字比中間元素小,則下面只需在前一半數組元素中查關鍵字比中間元素小,則下面只需在前一半數組元素中查找。找。n關鍵字與中間元素相等,則查找成功,輸出結果。關鍵字與中間元素相等,則查找成功,輸出結果。n關鍵字比中間元素大,則下面只需在后一半數組元素中查關鍵字比中間元素大,則下面只需在后一半數組元素中查找。找。u例例5-5:對已經排序的數組進行二分查找。:對已經排序的數組進行二分查找。5.3.4 使用使用Arrays類對數組進行操作類對數組進行操作u為了方便對數組進行各種常見的操作,為了方便

9、對數組進行各種常見的操作,JDK預定預定義了義了java.util.Arrays類,該類提供了很多用類,該類提供了很多用于對數組進行操作的方法,這些方法適用于所有于對數組進行操作的方法,這些方法適用于所有元素為基本數據類型的數組。元素為基本數據類型的數組。 u1. 數組排序數組排序 nArray.sort(數組變量名稱數組變量名稱)u2. 數組查找數組查找nArray.binarySearch(數組變量名稱數組變量名稱, 需要從數組需要從數組中查找的值中查找的值)u3. 判斷數組內容相等判斷數組內容相等 nArrays.equals(數組數組1名稱,數組名稱,數組2名稱名稱)5.4.2 使用使

10、用StringBuffer/StringBuilder類處類處理字符串理字符串uStringBuffer/StringBuilder類提供對字符類提供對字符串的另一種處理方式,它們比串的另一種處理方式,它們比String類更加靈類更加靈活,可以在字符串上直接進行添加、插入和替換活,可以在字符串上直接進行添加、插入和替換等操作。等操作。u從從JDK5開始這兩個類在使用方式是相同的,兩開始這兩個類在使用方式是相同的,兩者區別是:如果編寫多線程程序,使用者區別是:如果編寫多線程程序,使用StringBuffer類;而編寫單線程應用程序時,類;而編寫單線程應用程序時,StringBuilder類的效率

11、更高。類的效率更高。1. 創建創建StringBuffer對象對象uStringBuffer描述的字符串緩沖區有一個重要描述的字符串緩沖區有一個重要的特性,稱為的特性,稱為“容量容量”,是指該緩沖區能夠容納,是指該緩沖區能夠容納字符的個數。字符的個數。 u創建創建StringBuffer對象的方式:對象的方式:nStringBuffer buffer = new StringBuffer(); 2. 修改緩沖區中的字符串修改緩沖區中的字符串u對字符串緩沖區進行的修改操作包括:在緩沖區對字符串緩沖區進行的修改操作包括:在緩沖區末尾追加新內容,在緩沖區的指定位置插入新內末尾追加新內容,在緩沖區的指

12、定位置插入新內容,也可以刪除和替換緩沖區的字符。在對緩沖容,也可以刪除和替換緩沖區的字符。在對緩沖區進行追加和插入等操作時,如果緩沖區容量不區進行追加和插入等操作時,如果緩沖區容量不夠了,緩沖區會自動擴容。夠了,緩沖區會自動擴容。 u在緩沖區不可收拾追加新內容使用在緩沖區不可收拾追加新內容使用append方法,方法,該方法可以把各種基本數據類型、字符串等數據該方法可以把各種基本數據類型、字符串等數據追加到緩沖區末尾。追加到緩沖區末尾。 u使用使用insert方法可以把各種基本數據類型、字符方法可以把各種基本數據類型、字符串等數據插入在字符串緩沖區的指定位置。串等數據插入在字符串緩沖區的指定位置。 3. 字符串緩沖區的其他操作字符串緩沖區的其他操作u定義字符串緩沖區如下:定義字符串緩沖區如下:StringBuffer buffer = new StringBuffer(welcome);5.4.3 字符串應用實例字符串應用實例u例例5-6:從鍵盤輸入一個字符串,計算其中的全部:從鍵盤輸入一個字符串,計算其中的全部數字字符表示的數值之和。例如輸入字符串數字字符表示的數值之和。例如輸入字符串1a2b3c,則計算結果為,則計算結果為1+2+3=6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論