我正在创建一个具有数组的类,并且我想实现方法add
,remove
和replace
。如何添加项目而不使用内置方法
但我不想使用任何内置的内部。
public class MySet {
public int set[];
private int size = 0;
public MySet(int size) {
this.set = new int[size];
}
public boolean add(int item) {
for (int i = 0; i < this.size(); i++) {
if (this.set[i] != 0) {
// add to array
}
}
this.size++;
return true;
}
public int size()
{
return this.size;
}
}
当您在Java中初始化一个固定大小的数组时,每个项目等于0
。具有if this.set[i] != 0
的部分是我坚持添加项目的地方。
我应该用指针的while循环吗?如:
public boolean add(int item) {
int index = 0;
while (index <= this.size()) {
if (this.set[index] != 0 || index <=) {
// increase pointer
index++;
}
this.set[index] = item;
}
但是,如果我有一个数组如[7,2,0,1]在列表中,它不会得到在循环的最后一个项目,这是我需要的。
那么,这通常如何完成?
你需要跟踪你目前有多少物品。每次添加增加此值。每次删除时,减少此值。 –
我推荐看看ArrayList是如何实现的,因为这基本上就是你想要做的。您需要注意内部数组的增长和收缩,并确定何时需要更多空闲空间来重新分配它。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/java/util/ArrayList.java#ArrayList – nasukkin