Java程序設計與數據結構 版權信息
- ISBN:9787302536284
- 條形碼:9787302536284 ; 978-7-302-53628-4
- 裝幀:平裝
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Java程序設計與數據結構 本書特色
Java Foundations is a comprehensive textbook for introductory programming sequences. The versatile layout supports a two-or three-semester schedule and introduces you to the world of programming—from the basics, to complex data structures.
Java程序設計與數據結構 內容簡介
本書是計算機核心課程系列的經典教材,內容豐富,總體上可分為兩部分:*部分是Java編程基礎;第二部分是復雜數據結構的Java設計與實現,專為兩學期的課程而設計。
本書語言簡潔、分析透徹,講解清晰,借鑒了行業領先的Java軟件解決方案,給出了學習Java的豐富案例,引領讀者從Java入門到精通,在學習Java基礎知識后,可設計實現復雜的數據結構。
Java程序設計與數據結構 目錄
目 錄
第1章 緒論 1
1.1 Java程序設計語言 1
1.1.1 Java程序 2
1.1.2 注釋 4
1.1.3 標識符與保留字 5
1.1.4 空白符 7
1.2 程序開發 8
1.2.1 程序設計語言分類 9
1.2.2 編輯器、編譯器和
解釋器 10
1.2.3 開發環境 12
1.2.4 語法與語義 12
1.2.5 錯誤 13
1.3 問題求解 14
1.4 軟件開發活動 15
1.5 面向對象程序設計 16
1.5.1 面向對象軟件原則 16
重要概念總結 19
術語總結 19
自測題 20
練習題 21
程序設計項目 21
自測題答案 23
第2章 數據與表達式 24
2.1 字符串 24
2.1.1 print和println方法 24
2.1.2 字符串連接 26
2.1.3 轉義字符 28
2.2 變量與賦值 30
2.2.1 變量 30
2.2.2 賦值語句 32
2.2.3 常量 33
2.3 基本數據類型 34
2.3.1 整數與浮點數 34
2.3.2 字符型 35
2.3.3 布爾型 37
2.4 表達式 37
2.4.1 算術運算符 37
2.4.2 運算符優先級 38
2.4.3 自增運算符與自減
運算符 41
2.4.4 賦值運算符 42
2.5 數據轉換 43
2.5.1 轉換技術 44
2.6 讀取輸入數據 45
2.6.1 Scanner類 45
重要概念總結 48
術語總結 48
自測題 49
練習題 50
程序設計項目 51
自測題答案 52
第3章 使用類和對象 54
3.1 創建對象 54
3.1.1 別名 56
3.2 String類 57
3.3 包 60
3.3.1 import聲明 61
3.4 Random類 62
3.5 Math類 64
3.6 格式化輸出 67
3.6.1 NumberFormat類 67
3.6.2 DecimalFormat類 68
3.6.3 printf方法 70
3.7 枚舉類型 70
3.8 包裝類 72
3.8.1 自動裝箱 74
重要概念總結 75
術語總結 75
自測題 75
練習題 76
程序設計項目 77
自測題答案 78
第4章 條件與循環 80
4.1 布爾表達式 80
4.1.1 相等運算符和關系
運算符 81
4.1.2 邏輯運算符 82
4.2 if語句 84
4.2.1 if-else語句 86
4.2.2 使用塊語句 88
4.2.3 條件運算符 90
4.2.4 嵌套if語句 91
4.3 比較數據 92
4.3.1 比較浮點數 93
4.3.2 比較字符 93
4.3.3 比較對象 93
4.4 switch語句 95
4.5 while語句 98
4.5.1 無限循環 102
4.5.2 嵌套循環 103
4.5.3 其他循環控制 106
4.6 迭代器 106
4.6.1 讀取文本文件 107
4.7 do語句 109
4.8 for語句 111
4.8.1 迭代器和for循環 115
4.8.2 循環語句比較 115
重要概念總結 116
術語總結 116
自測題 117
練習題 117
程序設計項目 120
自測題答案 122
第5章 編寫類 124
5.1 重溫類和對象 124
5.1.1 識別類和對象 125
5.1.2 職責分配 126
5.2 類的剖析 127
5.2.1 實例數據 130
5.2.2 UML類圖 131
5.3 封裝 132
5.3.1 可見性修飾符 133
5.3.2 訪問器和更改器 134
5.4 方法的剖析 138
5.4.1 return語句 142
5.4.2 參數 143
5.4.3 本地數據 144
5.4.4 重溫構造函數 145
5.5 靜態類成員 145
5.5.1 靜態變量 146
5.5.2 靜態方法 146
5.6 類關系 149
5.6.1 依賴 149
5.6.2 同一個類中對象間
的依賴 149
5.6.3 聚合 151
5.6.4 this引用 155
5.7 方法設計 156
5.7.1 方法分解 156
5.7.2 重溫方法參數 160
5.8 方法重載 163
5.9 測試 165
5.9.1 評審 166
5.9.2 缺陷測試 166
5.9.3 單元測試 167
5.9.4 集成測試 167
5.9.5 系統測試 168
5.9.6 測試驅動開發 168
5.10 調試 168
5.10.1 使用print語句的
簡單調試 169
5.10.2 調試的概念 169
重要概念總結 170
術語總結 171
自測題 172
練習題 173
程序設計項目 174
自測題答案 175
第6章 圖形用戶界面 178
6.1 GUI元素 178
6.1.1 框架和面板 179
6.1.2 按鈕和動作事件 182
6.1.3 確定事件源 183
6.2 更多組件 186
6.2.1 文本框 186
6.2.2 復選框 188
6.2.3 單選按鈕 191
6.2.4 滑塊 194
6.2.5 下拉框 197
6.2.6 定時器 201
6.3 布局管理器 204
6.3.1 流式布局管理器 207
6.3.2 邊界布局管理器 208
6.3.3 網格布局管理器 210
6.3.4 盒式布局管理器 212
6.3.5 容器的層次結構 214
6.4 鼠標事件和按鍵事件 214
6.4.1 鼠標事件 214
6.4.2 按鍵事件 220
6.4.3 擴展適配器類 224
6.5 對話框 224
6.5.1 文件選擇器 226
6.5.2 顏色選擇器 228
6.6 一些重要細節 228
6.6.1 工具提示和助記符 231
6.7 GUI設計 236
重要概念總結 236
術語總結 237
自測題 238
練習題 239
程序設計項目 240
自測題答案 241
第7章 數組 243
7.1 數組元素 243
7.2 數組的聲明與使用 244
7.2.1 邊界檢查 246
7.2.2 數組的其他語法 250
7.2.3 初始化列表 251
7.2.4 數組作為參數 252
7.3 對象數組 252
7.4 命令行參數 260
7.5 變長參數列表 261
7.6 二維數組 264
7.6.1 多維數組 267
重要概念總結 268
術語總結 268
自測題 269
練習題 269
程序設計項目 270
自測題答案 272
第8章 繼承 273
8.1 創建子類 273
8.1.1 受保護的修飾符 277
8.1.2 super引用 278
8.1.3 多重繼承 281
8.2 方法重寫 281
8.2.1 影子變量 284
8.3 類的層次結構 284
8.3.1 對象類 285
8.3.2 抽象類 286
8.4 可見性 288
8.5 設計繼承 290
8.5.1 限制繼承 291
重要概念總結 291
術語總結 292
自測題 292
練習題 292
程序設計項目 293
自測題答案 294
第9章 多態 295
9.1 動態綁定 295
9.2 使用繼承實現多態 296
9.3 接口 305
9.3.1 接口的層次結構 309
9.3.2 Comparable接口 310
9.3.3 Iterator接口 310
9.4 通過接口實現多態 310
9.4.1 事件處理 312
重要概念總結 313
術語總結 313
自測題 314
練習題 314
程序設計項目 314
自測題答案 315
第10章 異常 317
10.1 異常處理 317
10.2 不捕獲異常 318
10.3 try-catch語句 319
10.3.1 finally子句 321
10.4 異常傳播 322
10.5 異常類的層次結構 325
10.5.1 受檢查和不受檢查
的異常 327
10.6 I/O異常 327
重要概念總結 331
術語總結 331
自測題 332
練習題 332
程序設計項目 332
自測題答案 333
第11章 算法分析 334
11.1 算法效率 334
11.2 增長函數和大O符號 335
11.3 增長函數的比較 337
11.4 確定時間復雜度 338
11.4.1 分析循環的執行 338
11.4.2 嵌套循環 339
11.4.3 方法調用 340
重要概念總結 341
術語總結 342
自測題 342
練習題 342
自測題答案 343
第12章 集合 344
12.1 集合概述 344
12.1.1 抽象數據類型 345
12.1.2 Java Collections
API 346
12.2 棧集合 347
12.3 至關重要的OO概念 348
12.3.1 繼承與多態 349
12.3.2 泛型 349
12.4 使用棧計算后綴表達式 350
12.4.1 Javadoc 356
12.5 異常 357
12.6 棧ADT 357
12.7 用數組實現棧 360
12.7.1 容量管理 361
12.8 ArrayStack類 361
12.8.1 構造函數 362
12.8.2 push操作 364
12.8.3 pop操作 365
12.8.4 peek操作 366
12.8.5 其他操作 366
12.8.6 EmptyCollectionException
?類 366
12.8.7 其他實現 367
重要概念總結 367
術語總結 368
自測題 368
練習題 369
程序設計項目 370
自測題答案 370
第13章 鏈式結構 372
13.1 引用作為鏈 372
13.2 管理鏈表 374
13.2.1 訪問元素 374
13.2.2 插入節點 375
13.2.3 刪除節點 375
13.3 無元素的鏈表 376
13.3.1 雙向鏈表 377
13.4 Java API中的棧 377
13.5 使用Stacks:遍歷迷宮 377
13.6 實現棧:使用鏈表 385
13.6.1 LinkedStack類 385
13.6.2 push操作 388
13.6.3 pop操作 389
13.6.4 其他操作 390
重要概念總結 390
術語總結 391
自測題 391
練習題 391
程序設計項目 392
自測題答案 392
第14章 隊列 394
14.1 隊列的概念 394
14.2 Java API中的隊列 395
14.3 使用隊列:密鑰 396
14.4 使用隊列:模擬票務柜臺 399
14.5 隊列ADT 403
14.6 隊列的鏈式實現 404
14.6.1 enqueue操作 406
14.6.2 dequeue操作 406
14.6.3 其他操作 408
14.7 使用數組實現隊列 408
14.7.1 enqueue操作 412
14.7.2 dequeue操作 413
14.7.3 其他操作 414
14.8 雙端隊列 414
重要概念總結 414
術語總結 415
自測題 415
練習題 415
程序設計項目 416
自測題答案 417
第15章 列表 418
15.1 列表集合 418
15.2 Java Collections API中的
列表 420
15.3 使用無序列表:學位課程 421
15.4 使用索引列表:Josephus 429
15.5 列表ADT 431
15.5.1 向列表添加元素 432
15.6 用數組實現列表 436
15.6.1 remove操作 437
15.6.2 contain操作 439
15.6.3 有序列表的add
操作 440
15.6.4 特定于無序列表的
操作 441
15.6.5 無序列表的addAfter
操作 441
15.7 用鏈表實現列表 442
15.7.1 remove操作 443
重要概念總結 444
術語總結 444
自測題 445
練習題 445
程序設計項目 446
自測題答案 447
第16章 迭代器 448
16.1 什么是迭代器 448
16.1.1 迭代器的其他
問題 450
16.2 使用迭代器:重溫學位
課程 450
16.2.1 打印指定課程 454
16.2.2 刪除課程 455
16.3 使用數組實現迭代器 456
16.4 使用鏈表實現迭代器 458
重要概念總結 460
術語總結 460
自測題 460
練習題 460
自測題答案 461
第17章 遞歸 462
17.1 遞歸思想 462
17.1.1 無限遞歸 463
17.1.2 數學中的遞歸 463
17.2 遞歸編程 464
17.2.1 遞歸與迭代 466
17.2.2 直接遞歸與間接
遞歸 467
17.3 使用遞歸 467
17.3.1 穿越迷宮 467
17.3.2 漢諾塔 474
17.4 遞歸算法分析 477
重要概念總結 479
術語總結 479
自測題 479
練習題 480
程序設計項目 480
自測題答案 481
第18章 搜索與排序 483
18.1 搜索 483
18.1.1 靜態方法 484
18.1.2 泛型方法 484
18.1.3 線性搜索 485
18.1.4 二分搜索 486
18.1.5 搜索算法比較 488
18.2 排序 489
18.2.1 選擇排序 491
18.2.2 插入排序 493
18.2.3 冒泡排序 494
18.2.4 快速排序 496
18.2.5 合并排序 499
18.3 基數排序 501
18.4 排序效率和線程 505
18.4.1 線程 505
18.4.2 排序比較的演示 506
18.5 排序比較器的不同方式 517
重要概念總結 522
術語總結 523
自測題 523
練習題 524
程序設計項目 525
自測題答案 525
第19章 樹 527
19.1 樹的定義 527
19.1.1 樹分類 528
19.2 實現樹的策略 529
19.2.1 樹的數組實現的
計算策略 530
19.2.2 樹的數組實現的
模擬鏈式策略 530
19.2.3 樹的分析 531
19.3 樹的遍歷 532
19.3.1 前序遍歷 532
19.3.2 中序遍歷 533
19.3.3 后序遍歷 533
19.3.4 層序遍歷 534
19.4 二叉樹ADT 534
19.5 使用二叉樹:表達式樹 537
19.6 背痛分析儀 547
19.7 使用鏈表實現二叉樹 552
19.7.1 find方法 556
19.7.2 iteratorInOrder
方法 557
重要概念總結 558
術語總結 558
自測題 559
練習題 560
程序設計項目 560
自測題答案 561
第20章 二叉搜索樹 562
20.1 二叉搜索樹概述 562
20.1.1 向二叉搜索樹添加
元素 563
20.1.2 刪除二叉搜索樹中
的元素 564
20.2 實現二叉搜索樹 566
20.3 用鏈表實現二叉搜索樹 568
20.3.1 addElement操作 569
20.3.2 removeElement
操作 571
20.3.3 removeAllOccurrences
操作 573
20.3.4 removeMin操作 574
20.3.5 用數組實現二叉
搜索樹 575
20.4 使用二叉搜索樹實現有序
列表 575
20.4.1 BinarySearchTreeList
實現分析 578
20.5 平衡二叉搜索樹 579
20.5.1 右旋 580
20.5.2 左旋 580
20.5.3 右左旋 581
20.5.4 左右旋 581
20.6 實現二叉搜索樹:AVL樹 582
20.6.1 AVL樹的右旋 582
20.6.2 AVL樹中的左旋 583
20.6.3 AVL樹中的
右左旋 583
20.6.4 AVL樹中的
左右旋 583
20.7 實現二叉搜索樹:紅/黑樹 584
20.7.1 紅/黑樹中的插入
元素 585
20.7.2 從紅/黑樹中刪除
元素 587
重要概念總結 589
術語總結 589
自測題 590
練習題 590
程序設計項目 591
自測題答案 591
第21章 堆與優先隊列 593
21.1 堆 593
21.1.1 addElement操作 595
21.1.2 removeMin操作 596
21.1.3 findMin 操作 597
21.2 堆的應用:優先級隊列 597
21.3 用鏈表實現堆 600
21.3.1 addElement 操作 601
21.3.2 removeMin操作 604
21.3.3 findMin操作 606
21.4 用數組實現堆 606
21.4.1 addElement操作 608
21.4.2 removeMin操作 609
21.4.3 findMin操作 611
21.5 堆的應用:堆排序 611
重要概念總結 612
術語總結 613
自測題 613
練習題 614
程序設計項目 614
自測題答案 615
第22章 集與映射 616
22.1 集與映射集合 616
22.2 Java API中的集與映射 617
22.3 Set的應用:域攔截器 619
22.4 Map的應用:產品銷售 621
22.5 Map的應用:用戶管理 625
22.6 使用樹實現Set和Map 629
22.7 使用散列實現Set和Map 629
重要概念總結 631
術語總結 632
自測題 632
練習題 632
程序設計項目 633
自測題答案 633
第23章 多路搜索樹 634
23.1 組合樹的概念 634
23.2 2-3樹 634
23.2.1 將元素插入2-3
樹 635
23.2.2 從2-3樹中刪除
元素 637
23.3 2-4樹 639
23.4 B-樹 640
23.4.1 B*-樹 642
23.4.2 B -樹 642
23.4.3 B-樹分析 642
23.5 B-樹的實現策略 643
重要概念總結 643
術語總結 644
自測題 644
練習題 645
程序設計項目 645
自測題答案 645
第24章 圖 647
24.1 無向圖 647
24.2 有向圖 649
24.3 網絡 650
24.4 常用的圖算法 651
24.4.1 遍歷 651
24.4.2 測試連通性 654
24.4.3 *小生成樹 655
24.4.4 確定*短路徑 658
24.5 實現圖的策略 658
24.5.1 鄰接表 659
24.5.2 鄰接矩陣 659
24.6 用鄰接矩陣實現無向圖 660
24.6.1 addEdge方法 663
24.6.2 addVertex方法 664
24.6.3 expandCapacity
方法 665
24.6.4 其他方法 665
重要概念總結 665
術語總結 666
自測題 666
練習題 667
程序設計項目 667
自測題答案 668
第25章 數據庫 669
25.1 數據庫簡介 669
25.2 建立與數據庫的連接 671
25.2.1 獲取數據庫驅動
程序 671
25.3 創建與更改數據庫表 673
25.3.1 創建表 673
25.3.2 更改表 674
25.3.3 刪除列 675
25.4 查詢數據庫 675
25.4.1 顯示列 676
25.5 數據的插入、瀏覽與更新 677
25.5.1 插入 678
25.5.2 SELECT-FROM 679
25.5.3 更新 683
25.6 刪除數據和數據庫表 684
25.6.1 刪除數據 684
25.6.2 刪除數據庫表 684
重要概念總結 685
自測題 685
練習題 685
程序設計項目 686
自測題答案 687
第26章 JavaFX 688
26.1 JavaFX簡介 688
26.2 JavaFX的Hello World
程序 689
26.3 使用JavaFX Scene Builder 691
26.3.1 創建應用程序
項目 692
26.3.2 瀏覽項目文件 693
26.3.3 使用JavaFX Scene
Builder修改GUI 695
26.4 JavaFX中的事件處理 696
重要概念總結 700
自測題 700
程序設計項目 700
自測題答案 701
附錄A 詞匯表 702
附錄B 數系 725
B.1 位值 725
B.2 基數大于10 726
B.3 轉換 728
B.4 快捷轉換 729
練習題 730
附錄C Unicode字符集 733
附錄D Java運算符 735
附錄E Java修飾符 739
附錄F Java圖形 741
F.1 坐標系 741
F.2 表示顏色 741
F.3 繪圖 742
F.4 多邊形和折線 749
F.5 Polygon類 751
練習 752
程序設計項目 752
附錄G Java小程序 754
G.1 在HTML中嵌入Applet 755
G.2 更多的Applet方法 756
G.3 小程序中的GUI 759
程序設計項目 765
附錄H 正則表達式 766
附錄I 散列 767
I.1 散列概述 767
I.2 散列函數 769
I.2.1 除留余數法 769
I.2.2 折疊法 769
I.2.3 平方取中法 770
I.2.4 基數轉換法 770
I.2.5 數字分析法 770
I.2.6 長度依賴法 771
I.2.7 Java語言中的散列
函數 771
I.3 解決沖突 771
I.3.1 鏈接法 771
I.3.2 開放尋址法 773
I.4 刪除散列表元素 775
I.4.1 從鏈接實現中刪除
元素 775
I.4.2 從開放尋址實現中
刪除 776
I.5 Java Collections API中的
散列表 776
I.5.1 Hashtable類 777
I.5.2 HashSet類 778
I.5.3 HashMap類 779
I.5.4 IdentityHashMap類 780
I.5.5 WeakHashMap類 781
I.5.6 LinkedHashSet和
LinkedHashMap 782
重要概念 783
自測題 783
練習 784
程序設計項目 784
自測題答案 785
展開全部
Java程序設計與數據結構 作者簡介
John Lewis 教授是美國知名的編程語言暢銷教材的作者,撰寫了多部有關Java編程導論、Java軟件解決方案、Java數據結構以及計算機應用的相關教材。Lewis教授從美國弗吉尼亞大學獲得了博士學位并一直在該校任教