为了账号安全,请及时绑定邮箱和手机立即绑定

如何从arrayList中删除对象

如何从arrayList中删除对象

开满天机 2021-10-20 14:47:36
我从我的类中实现了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;

}


查看完整回答
反对 回复 2021-10-20
  • 1 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信