0

生病试图澄清。

我有:

public static void main(String[] args) {
    int a[] = {5, 6 ,7 ,8 ,9 ,10};
    removeArray takeOff = new removeArray();
    takeOff.remove(3);

    for (int i = 0 ; i < a.length ; i++){
        System.out.print(" "+a[i]);
    }
}

那应该打印出来:

5, 6, 7, 9, 10.

问题是删除方法,我应该怎么写。我有:

公共类removeArray {

public void remove(int index) {       

    if (index > 0) {
        System.arraycopy(testThatArray.a, 0, testThatArray.a, 0, index);
    }

    if (index < testThatArray.a.length - 1) {
        System.arraycopy(testThatArray.a, index + 1, testThatArray.a, index, testThatArray.a.length - index - 1);
    }

}

}

仍然没有?

更新:我得到了打印5 6 7 9 10 10,我怎样才能删除最后一个值?

4

5 回答 5

2

您不能删除数组的索引或元素,因为它已经在内存中调整了大小,因此您不能使用 delete 但您可以放置​​两个值 { null 或 0 } 或另一个您想要显示您已经得到的值。

于 2012-12-12T06:04:02.633 回答
1

数组无法调整大小。如果您想要一个可调整大小的集合,请使用 a List<Integer>(例如 a )。ArrayList<Integer>

否则,您必须自己实现这一点,方法是制作比原始数组小一个元素的数组副本。然后将除指定索引处的值之外的所有值从旧数组复制到新数组。

于 2012-10-23T03:08:31.450 回答
0

创建一个新数组或将其大小调整为实际数组的大小减去 1,然后循环遍历数组中的所有值以填充新数组,但跳过 .remove 方法中指定的值。

于 2012-10-23T03:13:31.137 回答
0

ArrayUtils#removeElement可能会做你想做的事。但是,请考虑改用 List。

于 2012-10-23T03:40:11.347 回答
0

数组是固定长度的集合。你不能删除一个值。如果您不想添加和删除内容,请使用 List 或 ArrayList

于 2012-10-23T03:09:36.070 回答