如何从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();

        }    

    }

但是,我不知道如何删除 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()方法以便我可以直接删除对象吗?


开满天机
浏览 395回答 1
1回答

jeck猫

一种可能性是用一个接受对象参数的方法重载现有的删除方法。在方法主体中,您必须遍历列表的对象并确定传递对象的索引。然后使用先前确定的索引调用现有的 remove-method 以删除相应的对象。以下实现从列表中删除第一次出现的指定对象。移除的对象被返回。如果列表不包含对象,则返回null。public Object remove(Object obj){&nbsp; &nbsp; int index = -1;&nbsp; &nbsp; for (int i = 0; i < data.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (data[i] == obj) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index = i;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; if (index != -1) {&nbsp; &nbsp; &nbsp; &nbsp; return remove(index);&nbsp; &nbsp; }&nbsp; &nbsp; return null;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java