第一章 袋子

第一章 袋子

简介

抽象数据类型(ADT),独立于任何编程语言,是对概念上定义的一组数值以及在这些数值上的操作的规格说明。而数据结构ADT在编程语言中的实现。

集合是一个将其他对象形成组并向客户提供服务的对象。典型的集合能使客户增删查检改它所代表的对象。集合的行为被抽象化的说明。集合是ADT,而ADT去不一定是集合。

ADT袋子是集合和ADT的典型例子。在java中使用袋子,不需要知道袋子中数据项是如何表示的,也不需要知道袋子的操作是如何实现的吗,使用袋子的程序不依赖于这些细节。程序的这一特征就是数据抽象。

1.袋子的定义

袋子是无序排列的对象的有限集合,可包含重复对象。

2.袋子的行为

操作对象

  • 向袋子中增加一个给定的对象
  • 删除一个未特别指定的对象
  • 删除一个特别指定的对象,如果有的话
  • 删除所有的对象

查看量

  • 获得当前对象数量
  • 查看袋子是否满
  • 查看袋子是否空

查看对象

  • 统计某个对象出现的次数
  • 查看是否包含某一个指定的对象
  • 查看所有对象

3.袋子的规格说明

涉及决策:当非正常情况发生时如何处理?

  • 返回信号,如试图从空袋子中删除一个物品,remove方法将会返回null,此值必须不同于袋子中任何物品
  • 返回布尔值,表示操作操作成功或失败
  • 抛出异常

4.接口

类的接口不包括:数据域、构造函数、私有方法和受保护方法。

public interface BagInterface<T> {

    boolean add(T newEntity);

    T remove();

    boolean remove(T anEntity);

    void clear();

    Integer getCurrentSize();

    boolean isFull();

    boolean isEmpty();

    Integer getFrequencyOf(T anEntity);

    boolean contains(T anEntity);

    T[] toArray();

}

原文地址:https://www.cnblogs.com/junlin7/p/8318984.html

时间: 2024-10-12 11:45:24

第一章 袋子的相关文章

第一章 特征工程-------------《百面机器学习》

今天打算看看<百面机器学习>,打好基础,方便日后找工作,同时也是打发最近无聊的心情(闲下来就喜欢多想导致心情terrible). 第一章    特征工程 第一节  特征归一化 Q1:为什么需要对数值的特征做归一化? A1:对数据类型的特征作归一化可以将所有的特征都统一到一个大致相同的数值区间内.避免因量纲的不同带来的影响. 最常用的方法有:1)线性函数归一化.即 对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放. 2)零均值归一化.将原始数据映射到均值为0,标准差

C#认证第一章1 题 11题

C#第一章第一题 C#认证第一章  11题

计算机网络安全第一章

计算机网络不安全因素:偶发因素.自然因素.认为因素(被动攻击.主动攻击.邻近攻击.内部人员攻击.分发攻击) 不安全的主要原因: 1.互联网具有不安全性:开放的网络,国际性的网络,自由性的网络 2.操作系统存在的安全问题:操作系统软件自身的不安全性,留下"后门".操作 系统体系结构造成的不安全隐患.操作系统可以创建进程.操作系统的无口令入口及隐蔽通道 3.数据安全问题 4.传输线路安全问题 5.网络应用存在的安全问题 6.网络安全管理问题 计算机网络安全是一门涉及计算机科学.网络技术.通

第一章读后感

第一章主要讲述了安卓系统的一些基本知识,安卓系统的架构以及如何查看Linux内核版本和其定义的规则. Android的体系结构主要由Linux内核.C/C++代码库.Android SDK API和应用程序四层构成,因此,Android和linux的核心部分差异非常的小:而且Android SDK API 是由Java语言编写的. 安卓移植在很大程度上是Linux内核移植主要就是移植驱动程序. 怎样学习Linux驱动开发呢,由于Linux的内核版本更新较快,每一次内核的变化就意味着Linux驱动

《大道至简》第一章读后感

经常听见有人抱怨编程太难,说自己不是学软件的料,那么他们真该好好看看<大道至简>这本书,相信他们看完这本书后会有很大收获. <大道至简>第一章引用了一个很简单的故事“愚公移山”,用这个故事很好的概述了我们在完成一个项目时所要进行的步骤.听上去“愚公移山”和编程简直是风马牛不相及,但是看过作者的叙述又有原来如此的感觉.其实编程并没有什么难懂的,就和我们日常生活一样,发现问题,分析问题,提出解决问题的方案,实施,和后续的验收.例如某天我们突然发现家里放不出水了,这就是发现问题,我们会观

读《大道至简》第一章有感

近期老师为我们推荐了一本书,叫做<大道至简>,书很薄,却精辟的讲述了软件工程专业对于编程这一实践过程的重要思想,我们总以为编程是怎样的有难度,却从来没有考虑过编程为什么难,他到底难在哪.事实是我们错了,我们不是不会技术,而是不会方法. 第一章主要讲述了编程的精义,作者利用愚公移山的故事,简洁明了的讲解了编程的实质含义,从愚公移山实施的各个方面与编程联系在一起,讲解了编程的过程.从开始的原因,到编程实现的目标,然后小组团队对这个编程项目的讨论,以及各个人员在不同项目上的安排,并且还有项目之外的协

C++ Primer快速学习 第一章 入门

很多人说C++Primer不适合于入门,本系列入门文章向大家证明了:这是一个谎言. 第一章 入门 本章介绍 C++ 的大部分基本要素:内置类型.库类型.类类型.变量.表 达式.语句和函数. 1.1. 编写简单的 C++ 程序 每个 C++ 程序都包含一个或多个 函数 ,而且必须有一个命名为 main.函数 由执行函数功能的语句序列组成.操作系统通过调用 main 函数来执行程序, main 函数则执行组成自己的语句并返回一个值给操作系统. 下面是一个简单的 main 函数,它不执行任何功能,只是

数据库期末考试复习题 第一章

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27820507 一.单项选择题: 1. 位于用户和操作系统之间的一层数据管理软件是  C    . A.DBS  B.DB  C.DBMS  D.MIS 2. 数据库系统中的数据模型通常由    A     三部分组成. A.数据结构.数据操作和完整性约束 B.数据定义.数据操作和安全性约束 C.数据结构.数据管理和数据保护 D.数据定义.数据管理和运行控制 3. 

大道至简第一章读后感 Java伪代码形式

观看了大道至简的第一章之后,从愚公移山的故事中我们可以抽象出一个项目, 下面用Java 伪代码的形式来进行编写: import java(愚公移山的故事) //愚公移山 public class yugong { //项目的目的:惩山北之塞,出入之迂: //项目的基本沟通方式:聚室而谋曰: //愚公确定的项目的目标:毕力平险,指通豫南,达于汉阴: //项目的技术方案:扣石垦壤,箕畚运于渤海之尾: //项目中的三名技术人员以及工程管理人员:(愚公)率子孙荷担者三夫: //力量较弱,富有激情的外援: