如何从arrayList中删除对象

时间:2018-09-30 20:04:36

标签: java arraylist

我从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();
        }    
    }

但是,我不知道如何删除ArrayList中我的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 个答案:

答案 0 :(得分:0)

一种可能是使现有的remove-method重载一个采用Object参数的方法。在方法主体中,您必须遍历列表的对象并确定所传递对象的索引。然后使用先前确定的索引调用现有的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;
}