首页 > 图书中心 > Java程序设计与数据结构(第4版)

目录

目 录

第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

  

  

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘