簡體   English   中英

如何從arrayList中刪除對象

[英]How to remove an object from arrayList

我從ArrayList類中實現了add()remove()方法。

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

但是,我不知道如何刪除members ArrayList的特定索引。

                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對象的memberList 我可以修改我的remove()方法,這樣我可以直接刪除該對象嗎?

一種可能是使現有的remove-method重載一個采用Object參數的方法。 在方法主體中,您必須遍歷列表的對象並確定所傳遞對象的索引。 然后,使用先前確定的索引調用現有的刪除方法,以刪除相應的對象。

以下實現從列表中刪除第一次出現的指定對象。 返回刪除的對象。 如果列表不包含該對象,則返回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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM