需要帮助使用For循环从有序数组中删除元素

时间:2018-04-16 23:41:43

标签: java arrays arraylist

我想从数组中删除单个元素。这是我到目前为止所尝试的:

for (int i = pos + 1; i < currentSize; i++) 
    values[???] = values[i];
currentSize--;

我对[???]内部的内容感到困惑 如果有人可以提供帮助,我真的很感激。

2 个答案:

答案 0 :(得分:0)

???在这种情况下,表示您希望从中获取值的数组的索引。如果您有一个包含元素5,10,15和20的数组A,那么可以使用它们的索引检索每个元素。即5的索引是0,其中10是1。

由于零索引(A [0]是第一个元素),大小为n的数组将包含n-1个元素。

答案 1 :(得分:0)

阵列本质上不是很善良,因为它们不能调整大小。一旦你了解了对象和泛型,你就会停止使用数组并转换到Collection。但是现在,你必须创建一个新的(较小的)数组并复制所有 - 但只有一个 - 值。我会保持它非常基础,所以你学到的最多:

int indexToRemove = 3;

Object[] newArray = new Object[values.length - 1];

for (int i = 0; i < newArray.length; i++) {
    if (i < indexToRemove) {
        newArray[i] = values[i];
    } else {
        newArray[i] = values[i + 1];
    }
}

我不知道您的values属于哪种类型,所以我只是采用了Object。您可能想要替换它。