仿ArrayList功能的bag类
仿ArrayList功能的bag类
要想做到能够实现ArrayList功能,首先要有一个能往里填任何类型元素的的空间,但是不能用ArrayList来创建空间,这样这个项目就没有意义,因此,我创建了一个Object类的数组,以此来作为元素的空间。
private Object[] myarray = new Object[5];
1、getCurrentSize():获取数组中存放元素的个数
/*
int 空的格子=0,有元素的格子=0
for(遍历一遍数组){
if(元素为空){
空格++}
}
有元素的格子=数组长度-空的格子
返回 有元素的格子
*/
@Override
public int getCurrentSize() {
int emptyBlock=0;
int having=0;
for(int indedx=0;indedx<myarray.length;indedx++){
if(myarray[indedx]==null){
emptyBlock++;
}
}
having = myarray.length-emptyBlock;
return having;
}
2、isEmpty():判断数组是否为空
/*
boolean 判断
int 空格数
for(遍历数组){
if(数组的第i项为空{
空格数++
}
}
if(空格数==数组长度){
返回真
}else{
返回假
}
*/
@Override
public boolean isEmpty() {
boolean judge = true;
int emptyTimes = 0;
for (int i =0;i<myarray.length;i++){
if(myarray[i]==null){
emptyTimes++;
}
}
if(emptyTimes == myarray.length){
judge = true;
}else{
judge = false;
}
return judge;
}
3、add(Object newEntrty):往数组中添加元素
/*
for(遍历数组){
if(数组第i项为空){
数组第i项 = newEntry;
停止循环
}
}
* */
@Override
public boolean add(Object newEntry) {
for(int i=0;i<myarray.length;i++){
if(myarray[i]==null){
myarray[i]=newEntry;
break;
}
}
return true;
}
4、remove(Object anEntry):移除数组中的指定元素
/**
* for(遍历数组){
* if(数组第i项 == anEntry){
* 数组第i项变为空
* }
* }
*/
@Override
public boolean remove(Object anEntry) {
for(int i=0;i<myarray.length;i++){
if(myarray[i]==anEntry){
myarray[i]=null;
}
}
return true;
}
5、clear()将数组清空
/*
*for(遍历数组){
* 数组的每一项变为空
* }
*/
@Override
public void clear() {
for(int index=0;index<myarray.length;index++){
myarray[index] = null;
}
}
6、getFrequencyOf(Object anEntry):获取数组中某元素的个数
/**
* int 次数
* for(遍历数组){
* if(数组第index项 == anEntry){
* 次数++
* }
* if(数组该元素为空){
停止循环
}
* }
*/
@Override
public int getFrequencyOf(Object anEntry) {
int times =0;
for(int index=0;index<myarray.length;index++){
if(myarray[index].equals(anEntry)){
times++;
}
if(myarray[index] == null){
break;
}
}
return times;
}
7、contains(Object anEntry):检验某元素是否包含在这数组中
/**
* boolean 判断
* for(遍历数组){
* if(数组第index == anEntry){
* 判断为真
* }
* 停止循环
* }
*/
@Override
public boolean contains(Object anEntry) {
boolean judge = true;
for(int index=0;index<myarray.length;index++){
if (myarray[index]==anEntry){
judge = true;
}
break;
}
return judge;
}
代码链接:
仿ArrayList功能的bag类的更多相关文章
- Java——(五)Collection之List集合、ArrayList和Vector实现类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.List集合 List集合代表一个元素有序.客重复的集合,集合中每个元素都有其对应的顺序索引 ...
- 20162320刘先润第三周Bag类测试
前言 以下内容是本周Bag代码的课后作业,要求是完成伪代码.产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面 测试步骤 1.首先对Bag类引用BagInterface的代码进 ...
- Delphi 的绘图功能[10] - TFONT 类
Delphi 的绘图功能[10] - TFONT 类 ;DEFAULT_CHARSET = ;SYMBOL_CHARSET = ;SHIFTJIS_CHARSET = ;HAN ...
- Bag类的接口的实现与测试(课上测试补做)
Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...
- 课堂作业-Bag类的实现
课堂作业-Bag类的实现 要求: 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进 ...
- Java实现Bag类
Java实现Bag类 import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Scan ...
- DrawerLayout带有侧滑功能的布局类(1)
DrawerLayout: DrawerLayout顾名思义就是一个管理布局的.使用方式可以与其它的布局类类似. DrawerLayout带有滑动的功能.只要按照drawerLayout的规定布局方式 ...
- Scanner类、匿名对象、Random类、ArrayList集合、String类、static静态类、math类和Arrays工具类
一.Scanner类 1.除了八种基本数据类型,其他都是引用类型: 引用类型使用三步骤: 2.Scanner类 引用jdk提供的类,Scanner在java.util包下,不在java.lang包(S ...
- 水果项目第1集-想法>需求->功能->数据库设计->类设计
懒,懒人,我是个懒人. 懒人想做点事,总是拖拖拉拉,迟迟没有开始. 很久很久以前,就想做属于自己的产品,但是至今还没有一个属于自己的产品. 两年前,终于想好,要做一个网上卖水果的系统,手机上点点,水果 ...
随机推荐
- 火狐下不能使用非行间样式currentStyle用getComputedStyle获取
用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputed ...
- OpenID Connect Core 1.0(九)声明(Claims)
5 声明(Claims) 这一节说明客户端如何获取关于终端用户声明和验证事件.它还定义了一组标准的基本声明配置.预定义一组可请求的声明,使用特定的scope值或能用于请求参数中的个人声明.声明可以直接 ...
- CMap使用方法总结
#include <array> #ifdef _DEBUG #include <iostream> #include <fstream> using std::e ...
- 小技巧textbox的行数
没什么技术含量,但如果不知道则实现起来很麻烦. c#中textbox.lines只记录回车的数量,并不是真正的总行数,如何得到呢,请使用: int 总行数 = this.textBox1.GetLin ...
- Java基础—IO小结(一)概述与节点流
一.File类的使用 由于file类是一个基础类,所以我们从file类开始了解.(SE有完善的中文文档,建议阅读) 构造器: 常用方法:——完整方法请参见API API API!!! File做的是 ...
- python二进制处理详述(转)
python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的. import struct a=12.34 # ...
- 2017-2018-1 20155239 《信息安全系统设计基础》第五周学习总结+mybash的实现
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品 ...
- JavaWeb总结(五)
使用Servlet接受服务器请求信息 HTTP请求示例 HttpServletRequest对象主要用于获取由客户端发送过来的请求头.参数.文件.数据等.Servlet存在的主要目的就是处理请求.Se ...
- 【转载】D3DXMatrixLookAtLH视图变换函数详解
原文:D3DXMatrixLookAtLH视图变换函数详解 /*D3DXMatrixLookAtLH函数返回的是世界->视图变换矩阵. 视图坐标系和局部坐标系是一样的,都是世界坐标系转换为指定的 ...
- eclipse项目转移至IDEA与IDEA tomcat报错(idea自带tomcat版本太高)与war包部署到win服务器与idea提交git的总结
eclipse导出项目到idea时,不要导出target: idea打开eclipse项目后,出现junit找不到的问题,原因是jar包缺失,而maven配置的低版本的junit也显示找不到,解决办法 ...