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教授从美国弗吉尼亚大学获得了博士学位并一直在该校任教