Java语言程序设计(进阶篇 英文版·原书第12版)

Java语言程序设计(进阶篇 英文版·原书第12版)
作 者: 梁勇
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  梁勇(Y. Daniel Liang) 佐治亚南方大学计算机科学荣休教授。之前曾是普渡大学计算机科学系副教授,并曾两次获得普渡大学卓越研究奖。他撰写了30多本著作,其中程序设计类教材在世界各地得到广泛使用。

内容简介

本书是Java语言的经典教材,分为基础篇和进阶篇,采用“基础优先,问题驱动”的方式,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书通过示例讲解问题求解技巧,提供大量的程序清单,每章配有丰富的复习题和编程练习题,帮助读者掌握编程技术,并学会应用所学技术解决实际开发中遇到的问题。本书可作为高等院校计算机相关专业程序设计课程的教材,也可作为Java语言及编程爱好者的参考资料。

图书目录

目  录

第19章 泛型  1

19.1 引言  2

19.2 动机和优点  2

19.3 定义泛型类和接口  4

19.4 泛型方法  6

19.5 示例学习:对一个对象数组

进行排序  8

19.6 原生类型和向后兼容  10

19.7 通配泛型  11

19.8 泛型的擦除和限制  14

19.9 示例学习:泛型矩阵类  16

第20章 线性表、栈、队列和

优先队列  25

20.1 引言  26

20.2 集合  26

20.3 迭代器  30

20.4 使用forEach方法  32

20.5 线性表  33

20.6 Comparator接口  37

20.7 用于线性表和集合的静态方法  42

20.8 示例学习:弹球  45

20.9 向量类和栈类  48

20.10 队列和优先队列  50

20.11 示例学习:表达式求值  53

第21章 规则集和映射  65

21.1 引言  66

21.2 规则集  66

21.3 比较规则集和线性表的性能  74

21.4 示例学习:关键字计数  77

21.5 映射  78

21.6 示例学习:单词的出现次数  83

21.7 单例与不可变的集合和映射  85

第22章 开发高效算法  89

22.1 引言  90

22.2 使用大O表示法来衡量算法效率   90

22.3 示例:确定大O  92

22.4 分析算法的时间复杂度  96

22.5 使用动态编程求斐波那契数  99

22.6 使用欧几里得算法求

最大公约数  101

22.7 求素数的高效算法  105

22.8 使用分治法寻找最近点对  111

22.9 使用回溯法解决八皇后问题  114

22.10 计算几何:寻找凸包  117

22.11 字符串匹配  119

第23章 排序  137

23.1 引言  138

23.2 插入排序  138

23.3 冒泡排序   140

23.4 归并排序  142

23.5 快速排序  146

23.6 堆排序  150

23.7 桶排序和基数排序  157

23.8 外部排序  159

第24章 实现线性表、栈、队列和

优先队列  173

24.1 引言  174

24.2 线性表的通用操作  174

24.3 数组线性表  178

24.4 链表  185

24.5 栈和队列  199

24.6 优先队列  203

第25章 二叉搜索树  209

25.1 引言  210

25.2 二叉搜索树基础  210

25.3 表示二叉搜索树  211

25.4 查找一个元素  212

25.5 在BST中插入一个元素  212

25.6 树的遍历  213

25.7 BST类  215

25.8 删除BST中的一个元素  224

25.9 树的可视化和MVC  230

25.10 迭代器  233

25.11 示例学习:数据压缩  235

第26章 AVL树  245

26.1 引言  246

26.2 重新平衡树  246

26.3 为AVL树设计类  249

26.4 重写insert方法  250

26.5 实现旋转  251

26.6 实现delete方法  252

26.7 AVLTree类  252

26.8 测试 AVLTree类  258

26.9 AVL树的时间复杂度分析  261

第27章 散列  265

27.1 引言  266

27.2 什么是散列  266

27.3 散列函数和散列码  267

27.4 使用开放地址法处理冲突  269

27.5 使用分离链接法处理冲突  273

27.6 装填因子和再散列  275

27.7 使用散列实现映射  275

27.8 使用散列实现规则集  284

第28章 图及其应用  295

28.1 引言  296

28.2 基本的图术语  297

28.3 表示图  298

28.4 图的建模  304

28.5 图的可视化  314

28.6 图的遍历  317

28.7 深度优先搜索  318

28.8 示例学习:连通圆问题  322

28.9 广度优先搜索  324

28.10 示例学习:9枚硬币反面问题  327

第29章 加权图及其应用  341

29.1 引言  342

29.2 加权图的表示  343

29.3 WeightedGraph类  345

29.4 最小生成树  353

29.5 寻找最短路径  359

29.6 示例学习:加权的9枚硬币

反面问题  368

第30章 集合流的聚合操作  379

30.1 引言  380

30.2 流管道  380

30.3 IntStream、LongStream和

DoubleStream  386

30.4 并行流  389

30.5 使用reduce方法进行流的

   归约  391

30.6 使用collect方法进行流的

   归约  394

30.7 使用groupingBy收集器进行

元素分组  397

30.8 示例学习  400

附录A Java关键字和保留字  411

附录B ASCII字符集  412

附录C 操作符优先级表  414

附录D Java修饰符  416

附录E 特殊浮点值  418

附录F 数系  419

附录G 位操作符  423

附录H 正则表达式  424

附录I 枚举类型  430<>