20162316 Bag课后作业

下面小标题都是码云链接

import java.util.Arrays;

public class Bag implements BagInterface {
Object[] stuff = new Object[0]; @Override
public int getCurrentSize() {
int size = 0;
for(int a = 0; a<stuff.length;a++){
if(stuff[a] != null) size++;
}
return size;
} @Override
public boolean isEmpty() {
boolean a = false;
if (getCurrentSize() ==0)
a = true; return a;
} //初始的包上限为0,每次在添加新的条目前将其上限加一,成为一个哆啦A梦的四次元口袋。
@Override
public boolean add(Object newEntry) {
boolean b = false;
stuff = Arrays.copyOf(stuff, stuff.length+1);
for (int a = 0;a < stuff.length;a++){
if (stuff[a] == null){
stuff[a] = (Object) newEntry;
b = true;
break;
}
}
return b;
} @Override
public Object remove() {
int a = (int)Math.random() * ( getCurrentSize());
Object removed = stuff[a];
stuff[a] = null;
return removed;
} @Override
public boolean remove(Object anEntry) {
boolean b = false;
for (int a = 0;a < stuff.length;a++){
if (stuff[a].equals(anEntry)){
b = true;
stuff[a] = null;
break;
}
}
return b;
} @Override
public void clear() {
for (int a = 0;a < stuff.length;a++){
stuff[a] = null;
}
} @Override
public int getFrequencyOf(Object anEntry) {
int num = 0;
for (int a = 0;a < stuff.length;a++){
if (stuff[a].equals(anEntry))
num++;
}
return num;
} @Override
public boolean contains(Object anEntry) {
boolean b = false;
for (int a = 0;a < stuff.length;a++){
if (stuff[a].equals(anEntry))
b =true;
break;
}
return b;
} @Override
public Object toArray() {
int num = 0;
Object [] BAG = new Object[getCurrentSize()];
for(Object element:stuff){
BAG[num] = element;
num++;
}
return BAG;
}
}
import junit.framework.TestCase;

public class BagTest extends TestCase {
Bag bag = new Bag(); public void testGetCurrentSize1() throws Exception {
bag.add(1);
assertEquals(1, bag.getCurrentSize());
} public void testIsEmpty1() throws Exception {
bag.add(123);
assertEquals(false, bag.isEmpty());
} public void testAdd1() throws Exception {
assertEquals(true, bag.add(1));
} public void testRemove2() throws Exception {
bag.add(523);
System.out.println(bag.remove());
} public void testRemove3() throws Exception {
bag.add(30);
assertEquals(true, bag.remove(30));
} public void testClear1() throws Exception {
bag.add(99);
bag.clear();
assertEquals(0,bag.getCurrentSize());
} public void testGetFrequencyOf1() throws Exception {
bag.add(111);
bag.add(222);
bag.add(111);
assertEquals(2,bag.getFrequencyOf(111)); } public void testContains1() throws Exception {
bag.add(75);
assertEquals(true,bag.contains(75));
} public void testToArray1() throws Exception {
bag.add(951);
System.out.println(bag.toArray());
}

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. RegExp exec有记忆性的问题

    当 RegExpObject 是作为一个变量时时.每次调用完exec()后.它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string.当 exec() 找 ...

  2. jslint

    auto execution/self execution/ Immediate function http://www.jslint.com/ (function () { 'use strict' ...

  3. net辅助工具列表

    最近对.net的辅助工具比较感兴趣,网上也已经有.net的十个必备工具的帖子了,这里提供了一份全面的工具列表: Code generation NVelocity CodeSmith X-Code . ...

  4. WPF的单位 屏幕 分辨率

    原文:WPF的单位 屏幕 分辨率 WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DP ...

  5. 学习和使用STL

    STL是一个标准规范,它只是为容器.迭代器和泛型算法等组件定义了一整套统一的上层访问接口及各种组件之间搭配运用的一般规则,而没有定义组件底层的具体实现方法. STL主要包括下面这些组件:I/O流,st ...

  6. CentOS7 msmtp+mutt发送邮件

    一.安装软件 # msmtp软件各版本下载地址:https://marlam.de/msmtp/download/ [root@--- ~]# wget https://marlam.de/msmtp ...

  7. Openstack入门篇(十七)之Cinder服务-->安装并配置一个本地存储节点

    怎样为块存储服务安装并配置存储节点.为简单起见,这里配置一个有一个空的本地块存储设备的存储节点.这个向导用的是 /dev/sdb,此处选用linux-node1节点作为存储节点,需要在vmware中添 ...

  8. 【POJ2832 】【Tyvj1460】【 7.22Test 】询问

    几种版本的题面 Description You are given an undirected graph G with N vertices and M edges. Each edge has a ...

  9. 【Maven】在pom.xml文件中使用resources插件的小作用

    在spring boot创建web项目打包为jar包的过程中,是不会把webapp目录下的页面也打包进去的,这个时候接触到了maven的 resources插件. ================== ...

  10. Java中 static、final和static final的特点及区别

    final: final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行时,初始化后不能被改变. final修饰的属性跟具体对象有关,在运行期 ...