20162316 Bag课后作业

下面小标题都是码云链接

  1. import java.util.Arrays;
  2. public class Bag implements BagInterface {
  3. Object[] stuff = new Object[0];
  4. @Override
  5. public int getCurrentSize() {
  6. int size = 0;
  7. for(int a = 0; a<stuff.length;a++){
  8. if(stuff[a] != null) size++;
  9. }
  10. return size;
  11. }
  12. @Override
  13. public boolean isEmpty() {
  14. boolean a = false;
  15. if (getCurrentSize() ==0)
  16. a = true;
  17. return a;
  18. }
  19. //初始的包上限为0,每次在添加新的条目前将其上限加一,成为一个哆啦A梦的四次元口袋。
  20. @Override
  21. public boolean add(Object newEntry) {
  22. boolean b = false;
  23. stuff = Arrays.copyOf(stuff, stuff.length+1);
  24. for (int a = 0;a < stuff.length;a++){
  25. if (stuff[a] == null){
  26. stuff[a] = (Object) newEntry;
  27. b = true;
  28. break;
  29. }
  30. }
  31. return b;
  32. }
  33. @Override
  34. public Object remove() {
  35. int a = (int)Math.random() * ( getCurrentSize());
  36. Object removed = stuff[a];
  37. stuff[a] = null;
  38. return removed;
  39. }
  40. @Override
  41. public boolean remove(Object anEntry) {
  42. boolean b = false;
  43. for (int a = 0;a < stuff.length;a++){
  44. if (stuff[a].equals(anEntry)){
  45. b = true;
  46. stuff[a] = null;
  47. break;
  48. }
  49. }
  50. return b;
  51. }
  52. @Override
  53. public void clear() {
  54. for (int a = 0;a < stuff.length;a++){
  55. stuff[a] = null;
  56. }
  57. }
  58. @Override
  59. public int getFrequencyOf(Object anEntry) {
  60. int num = 0;
  61. for (int a = 0;a < stuff.length;a++){
  62. if (stuff[a].equals(anEntry))
  63. num++;
  64. }
  65. return num;
  66. }
  67. @Override
  68. public boolean contains(Object anEntry) {
  69. boolean b = false;
  70. for (int a = 0;a < stuff.length;a++){
  71. if (stuff[a].equals(anEntry))
  72. b =true;
  73. break;
  74. }
  75. return b;
  76. }
  77. @Override
  78. public Object toArray() {
  79. int num = 0;
  80. Object [] BAG = new Object[getCurrentSize()];
  81. for(Object element:stuff){
  82. BAG[num] = element;
  83. num++;
  84. }
  85. return BAG;
  86. }
  87. }
  1. import junit.framework.TestCase;
  2. public class BagTest extends TestCase {
  3. Bag bag = new Bag();
  4. public void testGetCurrentSize1() throws Exception {
  5. bag.add(1);
  6. assertEquals(1, bag.getCurrentSize());
  7. }
  8. public void testIsEmpty1() throws Exception {
  9. bag.add(123);
  10. assertEquals(false, bag.isEmpty());
  11. }
  12. public void testAdd1() throws Exception {
  13. assertEquals(true, bag.add(1));
  14. }
  15. public void testRemove2() throws Exception {
  16. bag.add(523);
  17. System.out.println(bag.remove());
  18. }
  19. public void testRemove3() throws Exception {
  20. bag.add(30);
  21. assertEquals(true, bag.remove(30));
  22. }
  23. public void testClear1() throws Exception {
  24. bag.add(99);
  25. bag.clear();
  26. assertEquals(0,bag.getCurrentSize());
  27. }
  28. public void testGetFrequencyOf1() throws Exception {
  29. bag.add(111);
  30. bag.add(222);
  31. bag.add(111);
  32. assertEquals(2,bag.getFrequencyOf(111));
  33. }
  34. public void testContains1() throws Exception {
  35. bag.add(75);
  36. assertEquals(true,bag.contains(75));
  37. }
  38. public void testToArray1() throws Exception {
  39. bag.add(951);
  40. System.out.println(bag.toArray());
  41. }

Bag类课后作业的更多相关文章

  1. String字符串类课后作业

    String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...

  2. 课堂作业-Bag类的实现

    课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...

  3. 20162320刘先润第三周Bag类测试

    前言 以下内容是本周Bag代码的课后作业,要求是完成伪代码.产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面 测试步骤 1.首先对Bag类引用BagInterface的代码进 ...

  4. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  5. Bag类的接口的实现与测试(课上测试补做)

    Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...

  6. java课后作业-5

    作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...

  7. Java字符串课后作业

    [实验任务] 1.实验题目:字串加密 2.实验内容:古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

  8. C++第三章课后作业答案及解析---指针的使用

    今天继续完成上周没有完成的习题---C++第三章课后作业,本章题涉及指针的使用,有指向对象的指针做函数参数,对象的引用以及友元类的使用方法等 它们具体的使用方法在下面的题目中会有具体的解析(解析标注在 ...

  9. JAVA第三周课后作业

    JAVA课后作业 一.枚举类型 代码: enum Size{SMALL,MEDIUM,LARGE}; public cl ass EnumTest { public static void main( ...

随机推荐

  1. ucos串口通讯模块设计

    在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率.缩短开发周期.uCOS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位 ...

  2. 数据结构与算法之排序(4)希尔排序 ——in dart

    研究了网上大部分的希尔排序代码,发现大部分都是互相抄的——因为网上甚至某些书上的实现大部分都是错的.希尔排序是插入排序的升级版,通过引入间隔,然后分组进行插入排序.再逐步缩小间隔,直至间隔为1时,做全 ...

  3. 马尔可夫毯(Markov blanket)

    马尔可夫毯(Markov blanket) 马尔科夫毯,是满足如下特性的一个最小特征子集:一个特征在其马尔科夫毯条件下,与特征域中所有其他特征条件独立.设特征T的马尔科夫毯为MB(T),则上述可表示为 ...

  4. 洛谷 P1350 车的放置

    洛谷 P1350 车的放置 题目描述 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数. 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也 ...

  5. 13-[函数进阶]-列表生成式,生成器&迭代器

    1.列表生成式 Python一种独特的语法,相当于语法糖的存在,可以帮你在某些场合写出比较精简酷炫的代码.但没有它,也不会有太多的影响. 语法糖(Syntactic sugar),也译为糖衣语法,是由 ...

  6. 【mysql】排序方操作50题练习及其答案

    1.创建数据库.相关表,并插入数据create database homework;use homework; create table class_grade(gid int primary key ...

  7. Mac下 Windows 7 虚拟机搭建SVN服务器的详细步骤(此方法同样适用于单纯的Windows系统搭建SVN)

    内容中包含 base64string 图片造成字符过多,拒绝显示

  8. centos6.5部署gitlab

    安装过程参考: https://www.cnblogs.com/wenwei-blog/p/5861450.html https://ehlxr.me/2016/07/31/CentOS-%E7%B3 ...

  9. 牛客网NOIP赛前集训营-提高组(第六场)B-选择题[背包]

    题意 题目链接 分析 直接背包之后可以 \(O(n)\) 去除一个物品的影响. 注意特判 \([p==1]\) 的情况. 总时间复杂度为 \(O(n^2)\) . 代码 #include<bit ...

  10. [BZOJ4028][HAOI2015]公约数数列[分块+分析暴力]

    题意 题目链接 分析 首先明确 \(xor\) 运算和 \(\rm gcd\) 没有联系! 注意到一个数字取 \(\rm gcd\) 且保证每次取 \(\rm gcd\) 值都会变小的话,最多取 \( ...