首页 > 解决方案 > 将对象添加到arraylist的最后一个元素

问题描述

我正在创建一个可调整大小的对象数组。下面是我的add函数,我在其中传递要添加到数组列表中的对象。

该功能有效,但是如果有人可以解释此代码 temp[theList.length] = toAdd;

我知道它将参数参数添加到新 Arraylist 的末尾。但是让我感到困惑的是我传入的索引temp[]。我不应该包括theList.length + 1而不仅仅是theList.length

public boolean add(Object toAdd) {
        
    if (toAdd != null) {
            
        Object[] temp = new Object[theList.length + 1];
            
        for (int i = 0; i < theList.length; i++) {
            temp[i] = theList[i];
        }
        temp[theList.length] = toAdd;
        theList = temp;
        return true;
    } else {
        System.out.println("Invalid type");
        return false;
    }
}

标签: javaarraysarraylist

解决方案


add 方法的说明

假设 的大小theList为 10。

他们创建了一个temp数组,其大小为theList + 1,因此大小temp11。现在,对象被添加到temp除了最后一个元素之外tem[10]

要添加最后一个元素,您可以使用以下两种方法中的任何一种:

temp[theList.length] //temp[10]

或者

temp[temp.length-1] //temp[10]

他们使用第一种方法来添加toAdd对象。


推荐阅读