我从我的类中实现了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
	提交
		取消
	