我从我的类中实现了add()和remove()方法ArrayList。 public void add(Object obj) { if(data.length - currentSize <= 5) { increaseListSize(); } data[currentSize++] = obj; } public Object remove(int index){ if(index < currentSize){ Object obj = data[index]; data[index] = null; int tmp = index; while(tmp < currentSize){ data[tmp] = data[tmp+1]; data[tmp+1] = null; tmp++; } currentSize--; return obj; } else { throw new ArrayIndexOutOfBoundsException(); } }但是,我不知道如何删除 my ArrayListof的特定索引members。 if(temp[0].equals("ADD")) { memberList.add(member); fileOut.writeLine(member.toString()); fileLog.writeLine("New member " + member.toString() + " was succesfully added"); } **else if(temp[0].equals("REMOVE")) { //memberList.remove(index) }** }有什么建议我应该如何删除 的对象的索引memberList?我可以修改我的remove()方法以便我可以直接删除对象吗?
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
一种可能性是用一个接受对象参数的方法重载现有的删除方法。在方法主体中,您必须遍历列表的对象并确定传递对象的索引。然后使用先前确定的索引调用现有的 remove-method 以删除相应的对象。
以下实现从列表中删除第一次出现的指定对象。移除的对象被返回。如果列表不包含对象,则返回null。
public Object remove(Object obj){
int index = -1;
for (int i = 0; i < data.length; i++) {
if (data[i] == obj) {
index = i;
break;
}
}
if (index != -1) {
return remove(index);
}
return null;
}
添加回答
举报
0/150
提交
取消