仿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;
}
代码链接: