猿问

从数组中删除项目并缩小数组

如何从数组中删除项目,然后将数组调整为较小的大小?同样,如果需要添加其他项目,如何增加容量?



千巷猫影
浏览 340回答 3
3回答

缥缈止盈

您本身无法调整数组的大小,但可以使用以下一些实用程序功能创建一个新数组,并有效地将元素从旧数组复制到新数组:public static int[] removeElement(int[] original, int element){    int[] n = new int[original.length - 1];    System.arraycopy(original, 0, n, 0, element );    System.arraycopy(original, element+1, n, element, original.length - element-1);    return n;}但是,更好的方法是使用ArrayList(或类似的List结构)存储数据,然后根据需要使用其方法删除元素。

HUX布斯

由于数组具有在创建时分配的固定大小,因此唯一的选择是创建一个新数组,而没有要删除的元素。如果要删除的元素是最后一个数组项,则可以使用Arrays.copy以下命令轻松实现:int a[] = { 1, 2, 3};a = Arrays.copyOf(a, 2);运行上面的代码后,a现在将指向仅包含1、2的新数组。否则,如果要删除的元素不是最后一个,则需要以size-1创建一个新数组,并将除要删除的元素之外的所有项目复制到该数组中。上面的方法效率不高。如果您需要管理内存中可变的项目列表,最好使用列表。具体来说,LinkedList将在列表中删除一项O(1)(理论上最快)。
随时随地看视频慕课网APP

相关分类

Java
我要回答