仿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集-想法>需求->功能->数据库设计->类设计
懒,懒人,我是个懒人. 懒人想做点事,总是拖拖拉拉,迟迟没有开始. 很久很久以前,就想做属于自己的产品,但是至今还没有一个属于自己的产品. 两年前,终于想好,要做一个网上卖水果的系统,手机上点点,水果 ...
随机推荐
- Hdu4952 - Number Transformation - 数论(2014 Multi-University Training Contest 8)
寻找1~k内i的倍数.则这个数能够看成i*x,则下一个数为(i+1)*y,(i+1)*y>=i*x,那么能够推出.y=x-x/(i+1); 那么当x<i+1时,y==x.之后的循环也不会改 ...
- 使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎.所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- Linux下onvif客户端关于ipc摄像头的搜索
设备搜索:要访问一个IPC摄像头,或者说要调用IPC摄像头提供的WEB服务接口,就要先知道其IP地址,这就是设备发现的过程,或者叫设备搜索的过程.IPC摄像头用的是239.255.255.250(端口 ...
- Redis之Redis安装(Mac OS版本)
各版本下载地址:http://download.redis.io/releases,本教程使用版本为redis-5.0.4. ##进入应用安装目录 cd /usr/local ##下载安装包 wget ...
- go基础1:Hello world与变量声明
一.go语言版hello world package main # 指明文件属于main包 main包使用后来定义一个独立的可执行程序,而不是库main包中的main函数是特殊的,不管在什么程序中,m ...
- Verilog 位拼接运算符的优先级
最近研究FIFO的时候,在开源工程中看到这样一段代码 ; always @(posedge rd_clk) {'b0}}; else {'b0}}; else if(re) rp_bin <= ...
- 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践
20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...
- 工作中应对客户时日语mail的总结
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- 1. [文件]- 文件类型,文件open模式
1.文件类型:文本文件和二进制文件 硬盘中的文件保存为01010101格式,一般读取文件是把文件从硬盘中读取到内存中. 文本文件需要进行格式转换才能读取出来. 二进制文件一般用于传输 二进制文件:视频 ...
- 8 功能6:后台管理页面,编辑文章,xss攻击
1.后台管理页面之文本编辑 # 后台管理url re_path(r'^cn_backend/$', views.cn_backend, name='cn_backend'), re_path(r'^c ...