内容简介
第1章 Java语言的重要特性
1.1 类
1.1.1 方法描述
1.1.2 数据抽象
1.1.3 Employee类
1.1.4 局部变量和字段
1.1.5 构造函数
1.1.6 实例变量和静态变量
1.1.7 可见性修饰符
1.1.8 图形用户接口
1.1.9 Company类
1.1.10 继承
1.1.11 可见性修饰符protected
1.1.12 继承和构造函数
1.1.13 多态性(Polymorphism)
1.1.14 信息隐藏
1.1.15 异常处理
1.1.16 异常传送
1.2 小结
1.3 练习
第2章 接口和集合类
2.1 抽象方法和抽象类
2.2 接口
2.3 数组
2.4 集合类
2.5 集合类的存储结构
2.5.1 链接结构
2.5.2 LinkedCollection类
2.5.3 LinkedCollection类中的字段和方法定义
2.5.4 迭代器
2.5.5 数据结构和Java Collections Framework
2.7 练习
2.6 小结
第3章 软件工程介绍
3.1 软件开发生命期
3.2 问题分析
3.3 程序设计
3.3.1 方法描述和字段
3.3.2 依赖性图表
3.4 程序实现
3.4.1 方法验证
3.4.2 修正是否可行
3.4.3 评估方法的效率
3.4.4 大O符号
3.4.5 快速获取大O估计时间
3.4.6 平衡
3.4.7 运行时分析
3.4.8 Random类
3.5 程序维护
3.6 小结
3.7 练习
第4章 递归
4.1 绪论
4.2 阶乘
4.3 十进制转换成二进制
4.4 汉诺塔
4.5 回溯
4.6 二叉树搜索
4.7 间接递归
4.8 递归的开销
4.9 小结
4.10 练习
第5章 数组列表
5.1 List接口
5.2 ArrayList类
5.2.1 ArrayList类的方法描述
5.2.2 ArrayList类标题
5.2.3 ArrayList类中的字段
5.2.4 ArrayList对象可串行化性
5.2.5 ArrayList对象的可克隆性
5.3 实现ArrayList类
5.3.1 定义add方法
5.3.2 分摊时间
5.3.3 clone方法和copy构造函数
5.3.4 Fail-Fast迭代器
5.4 高精度算法
5.4.1 设计VeryLongInt类
5.4.2 实现VeryLongInt类
5.6 小结
5.7 练习
5.5 VECTOR类
第6章 链表
6.1 LinkedList类
6.1.1 比较LinkedList类和ArrayList类
6.1.2 LinkList迭代器
6.1.3 LinkedList类的字段和实现方法
6.1.4 ListItr类的字段和实现
6.1.5 LinkedList类的其他设计和实现方法
6.1.6 循环链表
6.2 行编辑器
6.2.1 设计Editor类
6.2.2 实现Editor类
6.2.3 Editor类方法的大O分析
6.2.4 EditorDirver类
6.3 小结
6.4 练习
7.1 队列
第7章 队列和堆栈
7.1.1 Queue类的设计与实现
7.1.2 Queue类可选择的设计和实现
7.2 计算机模拟
7.3 应用:模拟洗车
7.3.1 CarWash类的设计
7.3.2 CarWash类的实现
7.3.3 CarWash方法分析
7.3.4 随机到达时间
7.4 堆栈
7.4.1 Stack类的设计和实现
7.4.2 Java集合框架中的Stack类
7.4.3 Stack类可选的设计和实现
7.5 应用:如何编译实现递归
7.6 应用:中缀表达式到后缀表达式的转换
7.6.1 后缀表示
7.6.2 转换矩阵
7.6.3 标记
7.6.4 前缀表达式
7.7 小结
7.8 练习
第8章 二叉树和二叉搜索树
8.1 二叉树的定义和属性
8.1.1 二叉树定理
8.1.2 外部路径长度
8.1.3 对二叉树的遍历
8.2 二叉搜索树
8.2.1 BinSearchTree类
8.2.2 BinSearchTree类的字段及内置类
8.2.3 BinSearchTree类的实现
8.2.4 remove方法
8.2.5 TreeIterator类
8.3 小结
8.4 练习
第9章 平衡二叉搜索树
9.1 二叉搜索树的一个问题
9.2 旋转
9.3 AVL树
9.3.1 AVL树的高度
9.3.2 AVLTree类
9.3.3 fixAfterInsertion方法
9.3.4 add方法的正确性
9.4 RED-BLACK树
9.5 小结
9.6 练习
第10章 TreeMap和TreeSet
10.1 TreeMap类
10.1.1 TreeMap类的方法介绍
10.1.2 TreeMap类的字段
10.1.3 Comparator接口和Comparable接口
10.1.4 Entry类
10.1.5 TreeMap类的实现
10.1.6 fixAfterInsertion方法
10.1.7 Insertion的三种情况
10.1.8 TreeMap类的其他方法
10.1.9 fixAfterDeletion方法
10.1.10 entrySet方法
10.2 TREEMAP对象:一个简单的辞典
10.2.1 Thesaurus类的设计和实现
10.2.2 ThesaurusDriver类的设计和实现
10.3 TreeSet类
10.4 一个简单的拼写检查器
10.4.1 SpellChecker类的设计和实现
10.4.2 SpellCheckerDriver类的设计与实现
10.5 小结
10.6 练习
第11章 优先级队列
11.1 简介
11.2 PriorityQueue接口的定义
11.3 PriorityQueue接口的实现
11.3.1 Heap类
11.3.2 Heap类中的字段
11.3.3 Heap类的实现
11.3.4 percolateUp方法
11.3.5 percolateDown方法
11.4 应用:Huffman编码
11.4.1 Huffman树
11.4.2 贪婪算法
11.4.3 Huffman类
11.5 小结
11.6 练习
第12章 排序
12.1 简介
12.2 插入排序
12.3 排序能有多快
12.4 快速排序法
12.4.1 归并排序
12.4.2 树排序
12.4.3 堆排序
12.4.4 快速排序
12.5 小结
12.6 练习
第13章 检索和散列类
13.1 检索的分析框架
13.2 检索概述
13.2.1 顺序检索
13.2.3 red-black树检索
13.2.2 二分法检索
13.3 HashMap类
13.3.1 HashMap类的方法描述
13.3.2 HashMap类的字段
13.3.3 散列设计
13.3.4 hashCode方法
13.3.5 均匀散列假设
13.3.6 链
13.3.7 HashMap类的实现
13.3.8 链式散列分析
13.3.9 HashIterator类
13.4 HashSet类
13.5 开放地址散列
13.5.1 remove方法
13.5.2 主簇
13.5.3 双散列
13.5.4 开放地址散列分析
13.6 小结
13.7 练习
第14章 图、树和网络
14.1 无向图
14.2 有向图
14.3 树
14.4 网络
14.5 图的算法
14.5.1 迭代器
14.5.2 连通性
14.5.3 产生最小生成树
14.5.4 在网络中寻找最短路径
14.6 开发Network类
14.6.1 Network类的方法描述
14.6.2 Network类的字段
14.6.3 实现Network类
14.6.4 Network类的另一种设计和实现
14.7 突破网络
14.8 小结
14.9 练习
附录A 数学背景知识
A.1 简介
A.2 函数和数列
A.3 求和与求积
A.4 对数
A.5 数学归纳法
A.6 练习
附录B GUI和GUIListener类
B.1 简介
B.2 线程
B.3 实现Process接口
B.4 GUI类
B.4.1 GUI构造函数
B.4.2 GUI类中的其他方法
B.5 GUIListener类
B.6 综合应用
附录C Java集合框架
C.1 简介
C.2 Collection接口
C.3 List接口
C.4 ListIterator接口
C.5 Set接口
C.6 Map接口
C.7 ArrayList类
C.8 LinkedList类
C.9 TreeSet类
C.10 TreeMap类
C.11 HashSet类
C.12 HashMap类