-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java軟件結構與數據結構(第4版)

( 簡體 字)
作者:John Lewis Joseph Chase 著 類別:1. -> 程式設計 -> JAVA -> Java
譯者:金名 等譯
出版社:清華大學出版社Java軟件結構與數據結構(第4版) 3dWoo書號: 38007
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:3/18/2014
頁數:480
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302346708
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

譯 者 序
這是這本暢銷書的最新版——第4版了,著名作者John Lewis與Joseph Chase在前幾版的成功基礎上,根據使用本書做教材的教師和學生的反饋,在新版中進行了大量改進,以更好地適應教學需要。最重要的修改包括這樣幾個方面:
* 修訂了有關集合的章節,對Java API是如何支持集合的給出了更全面的闡述。
* 在每章的后面增加了術語和定義的匯總。
* 把迭代器單獨成一章,并對它進行了擴展介紹。
* 增加了新的代碼注解。
* 增加了新的常見錯誤插圖。
* 增加了新的設計要點插圖。
* 增加了一個新附錄,介紹圖形繪制、圖形用戶界面開發以及常規表達式。
* 對全書進行了修訂和更新,以提高介紹,解決問題。
總之,這些修改都是建立在使用以前版本教學的基礎上,為教師提供更多的機會和更好的靈活性來使用本書。
在翻譯過程中,我們力求忠實原文,但個別地方,我們認為作者的表述不是很清楚,或者認為直譯成中文容易使讀者產生困惑,我們在不改變原意的基礎上,對個別表述方式進行了修改,或添加譯注說明來進一步闡明作者的本意。
本書由金名、張長富主譯,陳宗斌、陳河南、陳潔榮、陳征、丁夢桐、戴君、賀軍、胡嵬、黃達明、馬宏華、王玉玲、謝淘、張海濤、鄭朦、鄭旭、李翔鷹、邱海艷、徐曉蕾、魏世亮、呂曉晴、李曉寧、位凱茜、韓珺、劉妍、鄭炳晴、宋丹、傅強、宋如杰、蔡江林、戴鋒、蔡永久、龔宇華、何正雄、黃定光、來陽、李剛生、李韜、歐婷、喬健、蘇高、孫朝輝、孫麗、徐茜、許瑛琪、葉守運、易陳麗、葉淑英、易小麗、喻四容、易志東、殷小俊、張冰月、張景友、張旭、張志強等人也參與了本書的翻譯工作,在此一并表示感謝!
由于水平有限,如有不妥之處,懇請讀者指正。


前 言
本書可用作“數據結構與算法”課程的教材。“數據結構與算法”課程常常稱為CS2課程,因為它通常作為計算機專業的第二門課程。
從教學的角度看,本書遵循了一流的CS1教材Java Software Solutions:Foundations of Program Design(作者John Lewis與William Loftus)一書的風格和方法,本書同樣具備已經受到很高評價的一些特色,比如關鍵概念框和完整代碼示例。作為計算機專業學生的兩門或者三門導論課程,這兩本書提供了一個堅實而系統的教學方案。也就是說,本書不要求學生在以前的課程中已經使用過Java Software Solutions:Foundations of Program Design一書。
在CS1和CS2課程中出現的內容(比如遞歸或排序),本書也同樣進行了闡述。本書還給出了一些有用的參考材料,介紹了面向對象的概念以及如何在Java中實現。
數據結構與算法在計算機專業課程中起著關鍵的作用,本書能較好地滿足該課程的 要求。
第4版的新內容
在第4版中,本書做了一些重要的修訂,以得到更佳的教學效果:
* 修訂了有關集合的章節,對Java API是如何支持集合的給出了更全面的闡述。
* 在每章的后面增加了術語和定義的匯總。
* 把迭代器單獨成一章,并對它進行了擴展介紹。
* 增加了新的代碼注解。
* 增加了新的常見錯誤圖示。
* 增加了新的設計要點插圖。
* 增加了一個新附錄,介紹圖形繪制、圖形用戶界面開發以及常規表達式。
* 對全書進行了修訂和更新,以更詳盡地介紹,并解決問題。
特別地,對每個集合的討論進行了重新修改,以匹配如下流程:


這種方法闡明了Java API支持某個集合與從頭開始實現集合之間的區別。它使得教師更容易指出API實現的局限性。這種方法還使得教師在需要的時候,只是簡單地介紹一下集合,而不詳細探討其實現。
本版的其他改進使得本書在更高的層次上對內容進行介紹。每章后面增加的術語表(及其定義)提供了對核心問題的匯總。新的代碼注釋和常見錯誤特性,可以突出特定問題(否則,這些問題可能會淹沒在正文中),且不會打斷內容的連貫性。
我們認為,這些修訂是建立在前面版本的教學基礎之上的,為教師選擇要教授的內容提供更好的靈活性。
本書的寫作風格
這種類型的圖書在整體寫作方法上的差別相當大。本書的寫作方法是建立在一些我們強烈推薦的重要原則之上的。首先,以一種連貫敘述的方式介紹在本書中將要考察的各種集合。其次,強調完美軟件設計技巧的重要性。第三,對本書結構加以組織以支持和強化本書的重要目標:即數據結構與算法的學習。我們將更深入地考察這些原則。
本書始終堅持良好的軟件工程實踐準則,集合實現的設計以及使用這些設計的程序遵循一致且恰當的標準。
章 節 劃 分
第1章(概述)討論了軟件質量涉及的各個方面,并對軟件開發問題進行了一個全面概述。本章的目的在于,在進行數據結構和算法設計的細節之前,建立一套正確的開發 思路。
第2章(算法分析)介紹了確定算法效率的基礎知識,并闡述了一個重要的標準,使得開發人員可以以正確的方式將一種算法與另一種算法進行比較。本章的重點是理解重要的概念,而不是陷入數學或公式的漩渦。
第3章(集合概述——棧)建立了集合的概念,強調了將接口和實現區分開來的必要性。本章還從概念上介紹了棧,然后闡述了基于數組的棧的實現。
第4章(鏈式結構——棧)討論了使用引用來創建鏈式數據結構。本章考察了有關鏈表管理的基本問題,然后使用基本鏈式數據結構(在第3章中已介紹),定義棧的另一種實現方法。
第5章(隊列)考察了先進先出隊列的概念和實現。本章通過一個高效使用隊列的示例來討論基數排序。本章所介紹的實現包括基本鏈表以及定長和環形數組。
第6章(列表)論述了3種類型的列表:有序表、無序表和索引表。通過討論這3種類型列表所共有的及各自獨有的操作,來對它們進行比較和區分。在各種類型的列表設計中,我們將恰當地使用繼承,且通過兩種方式(基于數組的和鏈式的表示)來實現這些 列表。
第7章(迭代器)是新的一章,分別介紹了迭代器的概念和實現,這些對集合是非常重要的。
第8章(遞歸)概要介紹了遞歸的概念,以及遞歸解決方案為什么是優美的。本章還探討了遞歸的實現細節,并討論了遞歸算法分析的基本思想。
第9章(排序與查找)討論了線性查找和二分查找算法以及若干排序的算法(如選擇排序、插入排序、冒泡排序、快速排序以及歸并排序)。本章著重討論與查找和排序相關的編程問題,比如將Comparable接口用作對象比較的基礎,以特定數據結構為基礎的查找與排序(如堆排序)將在后面的章節討論。
第10章(樹)對樹進行了概述,并構建了關鍵的術語和概念。本章討論了各種實現方式,并通過一個二叉樹來表示和評估某一算數表達式。
第11章(二叉查找樹)利用第9章構建的基本概念,定義了一個經典的二叉查找樹。本章先考察了一個二叉查找樹的鏈式實現,然后討論了樹結點的平衡如何對其性能起到關鍵作用。這就引出了AVL和二叉查找樹的紅/黑實現的介紹。
第12章(優先隊列與堆)探討了堆的概念、使用和實現,尤其是與優先隊列的關系。我們通過一個堆排序來舉例說明其用途。本章還介紹了鏈式實現和基于數組的實現。
第13章(Set與Map集合)介紹了這兩種類型的集合及其對Java Collections API的重要性。
第14章(多路查找樹)是前面章節的自然延伸。本章討論了2-3樹、2-4樹以及廣義B樹的概念,還討論了各種實現。
第15章(圖)探討了無向圖和有向圖的概念,并構建了一些重要的術語。本章考察了若干常用圖的算法,并討論了各種實現,包括鄰接矩陣。
附錄A(UML)概述了統一建模語言。UML是表示面向對象系統的事實標準表示法。
附錄B(面向對象設計)為任何需要回顧面向對象的基本概念及其在Java中如何實現等內容的讀者提供參考。本附錄包含的概念包括抽象、類、封裝、繼承、多態性以及許多相關的Java語言結構,比如接口。
附錄C(Java圖形編程)介紹了使用Java API繪制圖形的基礎知識。
附錄D(圖形用戶接口)詳細介紹了開發基于Swing的GUI所需的元素。本附錄還給出了使用各種接口組件的多種示例。
附錄E(散列)包括散列的概念及其相關問題,比如散列函數及沖突。本附錄討論了散列的各種Java Collections API。
附錄F(正則表達式)介紹了正則表達式的使用,它在多種Java API(如Scanner類)中發揮作用。
教 輔 資 料
本書的學生資源有:
* 本書所有程序的源代碼。
* 本書某些內容的VideoNotes。
這些資源可以從http://www.pearsonhighered.com/lewis獲取。
在Pearson Education的教師資源中心有如下教輔資料:
* 本書中的部分練習題和編程項目的答案。
* 測試題庫,含有測驗用的問題。
* 講解本書內容的PowerPoint幻燈片。
要獲得這些資源,可以訪問http://www.pearsonhighered.com/irc,或與你當地的Pearson Education銷售代表聯系。
內容簡介:

這是這本暢銷書的最新版——第4版了,著名作者John Lewis與Joseph Chase在前幾版的成功基礎上,根據使用本書做教材的教師和學生的反饋,在新版中進行了大量改進,以更好地適應教學需要。最重要的修改包括這樣幾個方面:
* 修訂了有關集合的章節,對Java API是如何支持集合的給出了更全面的闡述。
* 在每章的后面增加了術語和定義的匯總。
* 把迭代器單獨成一章,并對它進行了擴展介紹。
* 增加了新的代碼注解。
* 增加了新的常見錯誤插圖。
* 增加了新的設計要點插圖。
* 增加了一個新附錄,介紹圖形繪制、圖形用戶界面開發以及常規表達式。
* 對全書進行了修訂和更新,以提高介紹,解決問題。
總之,這些修改都是建立在使用以前版本教學的基礎上,為教師提供更多的機會和更好的靈活性來使用本書。
在翻譯過程中,我們力求忠實原文,但個別地方,我們認為作者的表述不是很清楚,或者認為直譯成中文容易使讀者產生困惑,我們在不改變原意的基礎上,對個別表述方式進行了修改,或添加譯注說明來進一步闡明作者的本意。
本書由金名、張長富主譯,陳宗斌、陳河南、陳潔榮、陳征、丁夢桐、戴君、賀軍、胡嵬、黃達明、馬宏華、王玉玲、謝淘、張海濤、鄭朦、鄭旭、李翔鷹、邱海艷、徐曉蕾、魏世亮、呂曉晴、李曉寧、位凱茜、韓珺、劉妍、鄭炳晴、宋丹、傅強、宋如杰、蔡江林、戴鋒、蔡永久、龔宇華、何正雄、黃定光、來陽、李剛生、李韜、歐婷、喬健、蘇高、孫朝輝、孫麗、徐茜、許瑛琪、葉守運、易陳麗、葉淑英、易小麗、喻四容、易志東、殷小俊、張冰月、張景友、張旭、張志強等人也參與了本書的翻譯工作,在此一并表示感謝!
由于水平有限,如有不妥之處,懇請讀者指正。

目錄:

第1章 概述 1
1.1 軟件質量 1
1.1.1 正確性 2
1.1.2 可靠性 2
1.1.3 健壯性 3
1.1.4 可用性 3
1.1.5 可維護性 3
1.1.6 可重用性 4
1.1.7 可移植性 4
1.1.8 運行效率 4
1.1.9 質量問題 5
1.2 數據結構 5
1.2.1 一個物理示例 5
1.2.2 以集裝箱作為對象 7
關鍵概念 7
主要術語 8
自測題 8
練習題 8
自測題答案 9
第2章 算法分析 10
2.1 算法效率分析 10
2.2 增長函數與大O記法 11
2.3 增長函數的比較 13
2.4 時間復雜度分析 14
2.4.1 循環運行的復雜度分析 14
2.4.2 嵌套循環的復雜度分析 15
2.4.3 方法調用的復雜度分析 16
關鍵概念 17
主要術語 17
自測題 18
練習題 18
自測題答案 18
參考文獻 19

第3章 集合概述——棧 20
3.1 集合 20
3.1.1 抽象數據類型 21
3.1.2 Java集合API 22
3.2 棧集合 23
3.3 主要的面向對象概念 24
3.3.1 繼承與多態性 24
3.3.2 泛型 25
3.4 使用棧計算后綴表達式 26
3.4.1 Javadoc 32
3.5 異常 33
3.6 棧ADT 34
3.7 用數組實現棧 36
3.7.1 管理容量 37
3.8 ArrayStack類 38
3.8.1 構造函數 39
3.8.2 push操作 40
3.8.3 pop操作 41
3.8.4 peek操作 42
3.8.5 其他操作 42
3.8.6 EmptyCollectionException類 43
3.8.7 其他實現 43
關鍵概念 44
主要術語 44
自測題 45
練習題 45
程序設計項目 46
自測題答案 47
第4章 鏈式結構——棧 48
4.1 鏈接作為引用 48
4.2 管理鏈表 50
4.2.1 訪問元素 50
4.2.2 插入結點 51
4.2.3 刪除結點 51
4.3 無鏈接的元素 52
4.3.1 雙向鏈表 52
4.4 Java API中的棧 53
4.5 使用棧來穿越迷宮 53
4.6 用鏈表實現棧 61
4.6.1 LinkedStack類 62
4.6.2 push操作 65
4.6.3 pop操作 65
4.6.4 其他操作 66
關鍵概念 67
主要術語 67
自測題 67
練習題 68
程序設計項目 68
自測題答案 68
第5章 隊列 70
5.1 概述 70
5.2 Java API中的隊列 71
5.3 使用隊列:代碼密鑰 72
5.4 使用隊列:售票口模擬 75
5.5 隊列ADT 79
5.6 用鏈表實現隊列 81
5.6.1 enqueue操作 82
5.6.2 dequeue操作 83
5.6.3 其他操作 84
5.7 用數組實現隊列 84
5.7.1 enqueue操作 87
5.7.2 dequeue操作 89
5.7.3 其他操作 89
5.8 雙端隊列 89
關鍵概念 90
主要術語 90
自測題 90
練習題 90
程序設計項目 91
自測題答案 92
第6章 列表 93
6.1 列表集合 93
6.2 Java集合API中的列表 95
6.3 使用無序列表:學習計劃 95
6.4 索引列表使用示例:Josephus問題 105
6.5 列表ADT 107
6.5.1 往列表中添加元素 107
6.6 使用數組實現列表 112
6.6.1 remove操作 113
6.6.2 contains操作 115
6.6.3 有序列表的add操作 116
6.6.4 無序列表的特有操作 117
6.6.5 無序列表的addAfter操作 117
6.7 使用鏈表實現列表 118
6.7.1 remove操作 119
關鍵概念 120
主要術語 120
自測題 121
練習題 121
程序設計項目 122
自測題答案 123
第7章 迭代器 124
7.1 何謂迭代器 124
7.1.1 迭代器的其他問題 126
7.2 使用迭代:再論學習計劃程序 126
7.2.1 顯示某些課程 130
7.2.2 刪除課程 131
7.3 用數組實現迭代器 132
7.4 用鏈表實現迭代器 135
關鍵概念 136
主要術語 137
自測題 137
練習題 137
自測題答案 137
第8章 遞歸 138
8.1 遞歸地思考 138
8.1.1 無窮遞歸 139
8.1.2 數學中的遞歸 140
8.2 遞歸地編程 140
8.2.1 遞歸與迭代 142
8.2.2 直接遞歸與間接遞歸 143
8.3 使用遞歸 143
8.3.1 穿越迷宮 143
8.3.2 漢諾塔 150
8.4 遞歸算法分析 154
關鍵概念 155
主要術語 156
自測題 156
練習題 156
程序設計項目 157
自測題答案 158
第9章 排序與查找 159
9.1 查找 159
9.1.1 靜態方法 160
9.1.2 泛型方法 160
9.1.3 線性查找法 161
9.1.4 二分查找法 162
9.1.5 查找算法的比較 164
9.2 排序 165
9.2.1 選擇排序法 168
9.2.2 插入排序法 170
9.2.3 冒泡排序法 171
9.2.4 快速排序法 173
9.2.5 歸并排序法 175
9.3 基數排序法 178
關鍵概念 181
主要術語 182
自測題 183
練習題 183
程序設計項目 184
自測題答案 185
第10章 樹 186
10.1 概述 186
10.1.1 樹的分類 187
10.2 實現樹的策略 188
10.2.1 樹的數組實現之計算策略 188
10.2.2 樹的數組實現之模擬鏈接策略 189
10.2.3 樹的分析 190
10.3 樹的遍歷 190
10.3.1 前序遍歷 191
10.3.2 中序遍歷 191
10.3.3 后序遍歷 192
10.3.4 層序遍歷 193
10.4 二叉樹 193
10.5 使用二叉樹:表達式樹 197
10.6 背部疼痛診斷器 208
10.7 用鏈表實現二叉樹 212
10.7.1 find方法 216
10.7.2 iteratorInOrder方法 217
關鍵概念 218
主要術語 219
自測題 220
練習題 220
程序設計項目 220
自測題答案 221
第11章 二叉查找樹 222
11.1 概述 222
11.2 用鏈表實現二叉查找樹 224
11.2.1 addElement操作 225
11.2.2 removeElement操作 227
11.2.3 removeAllOccurrences操作 231
11.2.4 removeMin操作 232
11.3 用有序列表實現二叉查找樹 233
11.3.1 BinarySearchTreeList實現的分析 236
11.4 平衡二叉查找樹 237
11.4.1 右旋 238
11.4.2 左旋 238
11.4.3 右左旋 238
11.4.4 左右旋 239
11.5 實現二叉查找樹:AVL樹 239
11.5.1 AVL樹的右旋 240
11.5.2 AVL樹的左旋 240
11.5.3 AVL樹的右左旋 241
11.5.4 AVL樹的左右旋 241
11.6 實現二叉查找樹:紅黑樹 242
11.6.1 紅黑樹中的元素插入 242
11.6.2 紅黑樹中的元素刪除 244
關鍵概念 246
主要術語 246
自測題 247
練習題 247
程序設計項目 248
自測題答案 248
參考文獻 250

第12章 優先隊列與堆 251
12.1 堆 251
12.1.1 addElement操作 253
12.1.2 removeMin操作 254
12.1.3 findMin操作 255
12.2 使用堆:優先級隊列 255
12.3 用鏈表實現堆 259
12.3.1 addElement操作 260
12.3.2 removeMin操作 262
12.3.3 findMin操作 265
12.4 用數組實現堆 265
12.4.1 addElement操作 267
12.4.2 removeMin操作 268
12.4.3 findMin操作 270
12.5 使用堆:堆排序 270
關鍵概念 271
主要術語 272
自測題 272
練習題 273
程序設計項目 273
自測題答案 274
第13章 Set與Map集合 275
13.1 概述 275
13.2 Java API中的Set和Map 276
13.3 使用Set集合:域阻塞器 278
13.4 使用Map集合:產品銷售 281
13.5 使用Map集合:用戶管理 284
13.6 使用樹來實現Set和Map集合 288
13.7 使用散列來實現Set和Map集合 289
關鍵概念 291
主要術語 292
自測題 292
練習題 292
程序設計項目 293
自測題答案 293
第14章 多路查找樹 294
14.1 整合樹的概念 294
14.2 2-3樹 294
14.2.1 往2-3樹中插入元素 295
14.2.2 從2-3樹中刪除元素 297
14.3 2-4樹 299
14.4 B樹 300
14.4.1 B*樹 301
14.4.2 B+樹 301
14.4.3 B樹的分析 302
14.5 B樹的實現策略 302
關鍵概念 303
主要術語 303
自測題 304
練習題 304
程序設計項目 304
自測題答案 305
參考文獻 305
第15章 圖 306
15.1 無向圖 306
15.2 有向圖 308
15.3 網絡 309
15.4 常用的圖算法 310
15.4.1 遍歷 310
15.4.2 測試連通性 313
15.4.3 最小生成樹 314
15.4.4 判定最短路徑 317
15.5 圖的實現策略 317
15.5.1 鄰接列表 317
15.5.2 鄰接矩陣 318
15.6 用鄰接矩陣實現無向圖 319
15.6.1 addEdge方法 323
15.6.2 addVertex方法 323
15.6.3 expandCapacity方法 324
15.6.4 其他方法 325
關鍵概念 325
主要術語 325
自測題 326
練習題 326
程序設計項目 327
自測題答案 327
參考文獻 328

附錄A UML 329
A.1 統一建模語言 329
A.2 UML類圖 329
A.3 UML關系 330
關鍵概念 332
自測題 333
練習題 333
自測題答案 333
附錄B 面向對象設計 334
B.1 概述 334
B.2 使用對象 335
B.2.1 抽象 335
B.2.2 創建對象 336
B.3 類庫與包 337
B.3.1 import聲明 338
B.4 狀態與行為 338
B.5 類 339
B.5.1 實例數據 342
B.6 封裝 342
B.6.1 可見性修飾符 343
B.6.2 局部數據 344
B.7 構造函數 344
B.8 方法重載 345
B.9 再談引用 346
B.9.1 空引用 346
B.9.2 this引用 347
B.9.3 別名 348
B.9.4 垃圾回收 350
B.9.5 將對象作為參數傳遞 350
B.10 static修飾符 351
B.10.1 靜態變量 351
B.10.2 靜態方法 352
B.11 包裝類 352
B.12 接口 353
B.12.1 Comparable接口 355
B.12.2 Iterator接口 355
B.13 繼承 355
B.13.1 派生類 356
B.13.2 protected修飾符 358
B.13.3 super引用 358
B.13.4 重載方法 359
B.14 類的層次結構 359
B.14.1 Object類 360
B.14.2 抽象類 361
B.14.3 接口的層次結構 362
B.15 多態性 363
B.15.1 引用和類的層次結構 363
B.15.2 基于繼承的多態性 364
B.15.3 基于接口的多態性 365
B.16 異常 367
B.16.1 異常消息 367
B.16.2 try語句 368
B.16.3 異常傳播 369
B.16.4 異常類的層次結構 369
關鍵概念 370
自測題 372
練習題 373
程序設計項目 373
自測題答案 375
附錄C Java圖形編程 376
C.1 像素與坐標 376
C.2 顏色表示 376
C.3 繪制圖形 377
C.4 多邊形與多直線 384
C.4.1 Ploygon類 387
練習題 388
程序設計項目 388
附錄D 圖形用戶接口 391
D.1 GUI的構成 391
D.1.1 框架與面板 394
D.1.2 按鈕與動作事件 395
D.1.3 確定事件源 396
D.2 更多GUI組件 399
D.2.1 文本域 399
D.2.2 核選框 402
D.2.3 單選按鈕 405
D.2.4 滑塊 408
D.2.5 組合框 412
D.2.6 計時器 416
D.3 布局管理器 420
D.3.1 流水布局管理器 422
D.3.2 邊界布局管理器 424
D.3.3 網格布局管理器 426
D.3.4 方框布局管理器 428
D.3.5 包容分層結構 430
D.4 鼠標與按鍵事件 430
D.4.1 鼠標事件 430
D.4.2 按鍵事件 437
D.4.3 擴展適配器類 441
D.5 對話框 441
D.5.1 文件選擇器 443
D.5.2 顏色選擇器 446
D.6 一些重要細節 446
D.6.1 邊框 446
D.6.2 工具提示與助記符 450
D.7 GUI設計 455
關鍵概念 455
自測題 456
練習題 457
程序設計項目 457
自測題答案 459
附錄E 散列 461
E.1 概述 461
E.2 散列函數 463
E.2.1 余數法 463
E.2.2 折疊法 463
E.2.3 平方取中法 464
E.2.4 基數轉換法 464
E.2.5 數字分析法 464
E.2.6 長度相關法 465
E.2.7 Java語言中的散列函數 465
E.3 解決沖突 465
E.3.1 鏈地址法 466
E.3.2 開放地址法 467
E.4 從散列表刪除元素 469
E.4.1 從鏈地址實現中刪除 470
E.4.2 從開放地址實現中刪除 470
E.5 Java集合API中的散列表 471
E.5.1 Hashtable類 471
E.5.2 HashSet類 472
E.5.3 HashMap類 473
E.5.4 IdentityHashMap類 474
E.5.5 WeakHashMap類 475
E.5.6 LinkedHashSet與LinkedHashMap 476
關鍵概念 477
自測題 477
練習題 478
程序設計項目 478
自測題答案 479
附錄F 正則表達式 481
序: