20162311 课堂测试 泛型类—Bag
课堂测试 泛型类—Bag
目录
一、题目要求
- 题目:泛型类-Bag
二、设计思路
自定义一个
Bag类,实现BagInterface中的方法。Bag类应该是一个可以存放东西的包,且存放的类型可以自定义,即使用泛型。先在Bag中声明一个名为bag的List<T>,在构造方法中将其实例化。接下来实现方法。每个需要实现的方法可以用bag调用ArrayList中的方法来实现。
三、问题和解决办法
- 问题:无法直接用
ArrayList中的toArray()方法来实现Bag中的toArray()方法 分析过程及解决办法:
ArrayList中有两个toArray()方法,没有参数,返回一个Object类型的数组,但我们需要返回一个T类型数组,如果强制转型,会抛出异常,无法强制转型;第二个方法,返回一个T类型的数组,但需要传入一个T类型的数组作为参数。于是我给接口中的toArray()方法加了个参数。那么在实际使用的时候,先声明一个相应类型的大小为1的数组,然后调用toArray()方法时传进去,就能把Bag中的元素转化到数组中。接口中的方法:

- 实现的方法:

- 在TestBag中的应用:

四、代码运行截图
- Bag的测试类运行截图:
Books类为自定义的类。

- 单元测试运行截图:
- getCurrentSize()方法

- isEmpty()方法

- add(T newEntry)方法

- remove()方法

- remove (T anEntry)方法

- clear()方法

- getFrequencyOf(T anEntry)方法
这个方法出了点问题,单元测试的时候即使是正确结果也显示的是红条,但是在测试类中调用这个方法得出来的结果却没有问题,目前还不知道是什么原因,还没有解决。 - contains(T anEntry)方法

- toArray(T[] a)方法

返回目录
五、代码托管地址
六、总结
这次的测试,主要是考察泛型的运用。我感觉我写的代码只是借用了List这个已经写好的泛型类,没有什么自己创新的算法。。。
以我目前的水平感觉也写不出来不过我下载了Java API的源代码,在我自己写Bag类的时候,也看了一下ArrayList中的那些方法是怎么实现的,可是感觉就一个字——晕!有一个稍微看起来简单的方法toArray()
但是这里又涉及到copyOf这个方法,我又去找这个方法的源代码,然后这个方法又要用到其他方法。。。感觉真的是一环扣一环。最后我只好放弃。所以最后我总结出,以我现在的水平,好像也只能看看源代码,然后再直接调用其中的方法来编写我的Bag类了。不过虽然现在做不到,但是多看看还是有用的,说不定哪天就能受到启发呢。
20162311 课堂测试 泛型类—Bag的更多相关文章
- 课堂作业 泛型类-Bag
自定义泛型类Bag 一.具体代码: 代码连接 二.伪代码: 1.思路: 老师讲完后我的想法是要做出一个类似于List的Bag,首先它的本身是又数组构成的并且是可自动增加长度的,然后实现一些基本的操作, ...
- 泛型类Bag
课堂练习--泛型类Bag 要求: 0.代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 1.参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并 ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- 20145209刘一阳《JAVA程序设计》第六周课堂测试
第六周课堂测试 1.现有以下代码,哪些选项插入到第5行可以通过编译?(BDF) 1.import java.util.*; 2. 3.Class FindStuff { 4.public static ...
- 耿丹CS16-2班课堂测试作业汇总
Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...
- 课堂测试ch06
课堂测试ch06 下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为(D) A. 1 B. 1/4 C. 1/2 D. 3/4 解析:在填充了之后,对于x和y数组,只有在引用 ...
- 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现
20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...
- 课堂测试——jsp登录界面设计
实现结果:在login.jsp页面提交用户名和密码(可以验证是否为空),点击登录跳转到loginResult.jsp页面进行验证并显示结果 JSP + JDBC + MySQL login.jsp 设 ...
- 20172306 2018-2019《Java程序设计与数据结构课堂测试补充报告》
学号 2017-2018-2 <程序设计与数据结构>课堂测试补充报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 刘辰 学号:20172306 实验教师:王志强 必 ...
随机推荐
- android基础---->Fragment的使用
碎片(Fragment)是一种可以嵌入在活动当中的UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛. Fragment的基础例子
- ios8 gps定位不好用
这样让iOS8正常使用定位功能呢? <1>你需要在info.plist表里面添加两条变量 在Info.plist中加入两个缺省没有的字段 NSLocationAlwaysUsageDesc ...
- 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
From:http://blog.csdn.net/fancylovejava/article/details/39643449 之前在做 APP 的时候不太关注这个问题,因为自己在使用其他 APP ...
- windows本地环境如何用wamp配置多域名绑定访问
https://jingyan.baidu.com/article/acf728fd5fcdadf8e510a3e5.html
- python下几种打开文件的方式
昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案.作为一个使用Python一年的小白,虽然说不是小白,但是这一年来基本上是用 ...
- postgresql----Btree索引
当表数据量越来越大时查询速度会下降,像课本目录一样,在表的条件字段上创建索引,查询时能够快速定位感兴趣的数据所在的位置.索引的好处主要有加速带条件的查询,删除,更新,加速JOIN操作,加速外键约束更新 ...
- 使用_Capistrano_进行自动化部署(2)
之前的一篇文章是为了解决问题而写的,很多东西都没有介绍清楚,这一篇文章就是完整介绍一下 Capistrano,主要的参考来源是 Modern PHP 这本书. Capistrano 是用于自动部署应用 ...
- C#读取xml文件指定节点下的值
#region 读取xml文件指定节点下的值 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(result); XmlNode root ...
- python threading.thread
Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading.Thread对 ...
- Python开发【模块】:CSV文件 数据可视化
CSV模块 1.CSV文件格式 要在文本文件中存储数据,最简单的方式是讲数据作为一系列逗号分隔的值(CSV)写入文件,这样的文件成为CSV文件,如下: AKDT,Max TemperatureF,Me ...
但是这里又涉及到copyOf这个方法,我又去找这个方法的源代码,然后这个方法又要用到其他方法。。。感觉真的是一环扣一环。最后我只好放弃。所以最后我总结出,以我现在的水平,好像也只能看看源代码,然后再直接调用其中的方法来编写我的Bag类了。不过虽然现在做不到,但是多看看还是有用的,说不定哪天就能受到启发呢。