《数据结构与抽象:Java语言描述(原书第4版)》一1.1 什么是包
本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第1章 ,第1.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学 新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.1 什么是包
设想一个纸袋,或反复使用的布袋,甚至一个塑料袋。当人们购物、打包午餐或者吃土豆片时会用到袋子。袋子里装着东西。在日常用语中,包(也称为袋子——译者注)是一种容器。但在Java中,容器(container)是一个对象,它的类派生于标准类Container。这样的容器用在图形程序中。在Java中,不把包(bag)看作一种容器,而是一种集合。
包与其他集合的区别是什么呢?包仅仅是含有项,但没有按某种方式规定项的次序,也允许有重复的项。大多数的行为可由其他类型的集合执行。当描述本章中设计的集合行为时,要谨记一点,就是我们正在通过一个实际的物理包来说明一个抽象的概念。例如,纸袋内装着不同大小和形状的东西,且没有特定的次序,也不考虑它的重复性。我们的抽象包将保持无序且可能有重复的对象,但我们强调,这些对象有相同或相关的数据类型。
注:包是没有特定次序的对象的有限集合。这些对象具有相同或相关的数据类型。包可以含有重复项。
包的行为
因为包中含有有限个对象,所以报告它含有多少个对象可能是包的行为之一:
- 得到当前包中的项数。
一个相关的行为是检测包是否为空:
- 查看包是否为空。
我们应该能添加和删除对象:
- 将给定对象添加到包中。
- 从包中删除一个未指定的对象。
- 可能的话,从包中删除一个具体对象的一次出现。
- 从包中删除所有对象。
虽然你希望杂货店的打包员不要将6个汤罐头扔到包中的面包和鸡蛋上面,不过添加操作并没有标出对象在包中的位置。记住,包中的内容是无序的。另外,第一个删除操作只删除它能删除的任何对象。这个操作就像是伸手到袋子里把东西拿出来一样。而第二个删除操作是在包中查找某项。如果找到它,则拿出它。如果包中有多个相等的对象都满足你的查找条件,则删除其中的任意一个。如果在包中找不到该对象,则不能删除它,且要直接表示出来。最后一个删除操作只是清空包中的所有对象。
你买了多少个狗食罐头?你记得拿鱼酱了吗?袋子里有什么?可用下列操作回答这几个问题:
- 统计包中某个对象的个数。
- 测试包中是否含有某个对象。
- 查看包中的所有对象。
现在我们有足够的行为。此时,我们将所有的行为写在一张纸上,或写在
因为包是一个抽象数据类型,所以我们仅描述它的数据并说明它的操作。不指明如何保存数据或如何实现它的操作。例如,不要考虑数组。首先,你需要明确地知道包操作都有哪些:关注什么操作可行,而不是它们如何做。即,在程序中能使用包之前,需要一组详细的规格说明。事实上,甚至在你还没确定程序设计语言前,你就应该先说明包的操作。
注:因为抽象数据类型描述了独立于程序设计语言的数据组织方式,所以实现它时你可以对程序设计语言有所选择。
《数据结构与抽象:Java语言描述(原书第4版)》一1.1 什么是包相关推荐
- 数据结构(c语言版) 计算机科学丛书,数据结构与算法分析--C语言描述(原书第2版)(计算机科学丛书)...
摘要: 本书讨论数据结构和算法分析.数据结构主要研究组织大量数据的方法,而算法分析则是对算法运行时间的评估.随着计算机的速度越来越快,对于能够处理大量输入数据的程序的需求变得日益急切.可是,由于在输入 ...
- 数据结构与算法分析Java语言描述 原书超清第3版 下载
链接: https://pan.baidu.com/s/135hWyCK3SssLwMmeHn4PCg 提取码: 9kk7
- s数据结构替换子表java版_数据结构与算法分析Java语言描述(第3版) PDF和源码免费 下载...
<数据结构与算法分析Java语言描述(第3版)>PDF和源码免费 下载 免积分下载 用户下载说明: 图书简介: 数据结构:Java语言描述(原书第3版)是国外数据结构与算法分析方面的经典教 ...
- 《机器学习与R语言(原书第2版)》一2.3 探索和理解数据
本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...
- 机器学习与R语言(原书第2版)》一1.4 实践中的机器学习
本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...
- python数据科学导论_数据科学导论:Python语言(原书第3版)
数据科学导论:Python语言(原书第3版) 作者:(意)阿尔贝托·博斯凯蒂;(意)卢卡·马萨罗 著 出版日期:2020年02月 文件大小:48.52M 支持设备: ¥50.00 适用客户端: 言商书 ...
- 【第5期】终于等到你!《Effective Java 中文版》原书第3版!
"我很希望我10年前就能拥有这本书.有人可能认为我不需要任何Java方面的书籍,但是我需要这本书." --Java之父James Gosling 这段话出自Java之父James ...
- 《数据结构与算法分析—Java语言描述》pdf
下载地址:网盘下载 内容简介 编辑 "数据结构"是计算机专业的基础与核心课程之一,Java是现今一种热门的语言.本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Jav ...
- 数据结构教程(Java语言描述)前两章总结
一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...
- 数据结构与算法JAVA语言描述第六章部分课后习题参考答案
6.2: (a): (b): 6.3: (a): (b): 6.19: 6.26: 6.32:
最新文章
- C语言 · 勾股数
- AI时代,中国技术创新如何弯道超车?
- 某资深互联网人分析:支付宝面临巨大困难,被微信争夺市场,年轻用户流失严重...
- sigmoid函数_机器学习面试常考知识之激活函数
- HP-UX平台安装Oracle11gR2数据库
- 使用线性回归的预测建模
- 【转】教你何时开启水果机上的HDR拍照
- 【8.0、9.0c】树形列表 列标题 不对齐的问题及解决方案
- [UI]抽屉菜单DrawerLayout分析(三)
- linux下 db2日志满了,DB2事务日志已满的解决方法
- 枚举+贪心--经常用到的思路--过程不好弄是--枚举结果C. Elections
- bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)
- 单片机,嵌入式,PLC三者之间有什么区别,学习方向如何选择
- Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法
- db2 reorg(转)
- Maven实战读书笔记
- wpsmac和pc版的区别_Mac系统下金山WPS和微软Office 哪个更好更好用
- wps文字表格制作拼音田字格模板_最新用WPS表格快速制作拼音田字格的方法
- web前端牛人博客整理
- C:素数(质数)的判断以及输出
热门文章
- iOS 设计模式之抽象工厂
- pat04-树4. Root of AVL Tree (25)
- C# asp.net 图片微略图及图片裁剪处理
- Java高并发BlockingQueue重要的实现类二
- 销毁Spring Bean的三种方法
- ubuntu16.04 wget java_linux centos ubuntu下载安装JDK wget方式下载JDK
- jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
- JWPlayer Uncaught Error: Invalid SRT file
- Linux下LAMP服务配置
- 406. 根据身高重建队列