《数据结构与抽象:Java语言描述(原书第4版)》一本章小结
发布日期:2021-08-30 16:00:24 浏览次数:10 分类:技术文章

本文共 878 字,大约阅读时间需要 2 分钟。

本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学  新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本章小结

  • 可以使用Java数组来实现ADT包,这相对简单,但其他的实现也是可以的。
  • 在数组最后一项的后面添加一项,不会影响已有项的位置。类似地,从数组中删除最后的项也不会影响已有项的位置。
  • 因为包不维护项的次序,所以删除一项不需要将后续的所有数组项前移一个位置。相反,可以用数组中最后一项来替换你想删除的项,然后将最后一项替换为null。
  • 在其他方法之前标出和实现类的中心或核心方法,是一个好的策略,当你预料到这个类很长且复杂时。为其余的方法使用存根。
  • 在开发的每个阶段都要测试类,特别是在添加了重要的方法后。
  • 使用固定大小的数组可能得到一个满包。
  • 调整数组大小,使得它看上去能改变大小。为此,分配一个新数组,从原始数组中将项复制到数组中,使用原来的变量指向新数组。
  • 调整数组大小能让你实现集合,其内容个数仅受计算机内存大小的限制。
    你应该编写安全可靠的程序。例如,ADT包的实现,在使用之前检查包是否完全初始化,以及它的容量不会超出给定的限度。

程序设计技巧

  • 当定义一个类时,实现并测试一组核心方法。从添加到对象集合中的方法和已实现的方法入手。
  • 类不应该返回指向私有数据域的数组的引用。
  • 不要等到完全实现了一个ADT后才测试它。写存根,它是所需方法的不完整定义,开发过程中可以更早地开始测试。
  • 即使可能已经写了方法的一个正确定义,但如果你想到一个更好的实现,也要毫不犹豫地修改它。肯定要再次测试方法!
  • 当增大数组的大小时,将其中的项复制到更大的数组中。应该充分扩展数组,以减小复制的代价带来的影响。通用的方法是倍增数组的大小。
  • 实现了声明ADT操作的单一接口的类,应该将定义在接口中的方法声明为公有方法。但是,类还可以定义私有方法和保护方法。

转载地址:https://blog.csdn.net/weixin_34038652/article/details/90535911 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:《Linux 高级程序设计(第三版)》——第1章  Linux下C语言开发环境 1.1 Linux操作系统简介...
下一篇:移动开发框架 Xamarin 获 5400 万美元 C 轮投资

发表评论

最新留言

很好
[***.229.124.182]2024年03月10日 07时52分59秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

java变量怎么变常量_Java的常量与变量是什么?怎么学习呀? 2019-04-21
java开发招聘试题_客户化开发招聘试题-Java开发.doc 2019-04-21
java jdk win10 1335_win10下安装java jdk,tomcat 2019-04-21
java list二分查找_java中的ArrayList和LinkedList的二分查找速度比 | 学步园 2019-04-21
php中的变量名称用什么表示,PHP变量,方法,类等名称中的有效字符是什么? 2019-04-21
pic32mx是什么cpu_PIC32MX单片机外设库使用(Ⅰ)- 系统时钟及I/O口基本设置 2019-04-21
用c 在mysql上存图片_C 批量保存图片进 mysql 利用MYSQL_BIND插入longblob 2019-04-21
mysql 1045 28000_mysql报关于用户密码1045(28000),几种处理方法 (zhuan) 2019-04-21
solr比mysql的优势_Solr与Elasticsearch的优缺点比较总结和归纳 2019-04-21
华为博士招聘上机考试题目_牛客网-华为-2020届校园招聘上机考试-3 2019-04-21
python中for可以做变量名吗_Python中使用动态变量名的方法 2019-04-21
mysql 日期转换天数_MySQL 日期操作 增减天数、时间转换、时间戳 2019-04-21
java对象去重复_JAVA中List对象去除重复值的方法 2019-04-21
java bss_[转] .bss段和.data段的区别 2019-04-21
java上传图片损坏_大神求助 上传图片后 图片损坏 2019-04-21
java socket唯一标识符_Java Socket编程之常识网络基础知识 2019-04-21
java给xyz大小排序_java递归实现string xyz排序 2019-04-21
arctime必须要java_Arctime使用教程 Arctime常见问题解答 2019-04-21
mysql pxc mysql5.7_mysql之PXC5.7.18集群系列——1. Percona XtraDB Cluster 搭建 2019-04-21
mysql 自适应字段宽度_box-sizing解决自适应布局容器宽度问题 2019-04-21