我试着澄清一下。
我有:
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.
问题是删除方法,我该怎么写呢。我有:
public class 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
,我该如何删除最后一个值?
答案 0 :(得分:2)
你不能删除数组的索引或元素,因为它已经在内存中已经调整大小,所以你不能使用delete但你可以放两个值{null或0}或你想要显示的另一个值你已经得到这个。
答案 1 :(得分:1)
无法调整数组大小。如果您想要一个具有可重新定位的集合,请使用List<Integer>
(例如ArrayList<Integer>
)。
否则,您必须通过制作比原始数组小一个元素的数组副本来自行实现。然后将除旧指定索引处的值之外的所有值从旧数组复制到新数组。
答案 2 :(得分:0)
数组是固定长度集。你不能删除一个值。如果你不想添加和删除东西,请使用List或ArrayList
答案 3 :(得分:0)
创建一个新数组或使用实际数组的大小调整大小,并循环遍历数组中的所有值以填充新数组,但跳过.remove方法中指定的数组。
答案 4 :(得分:0)
ArrayUtils#removeElement可能会做你想要的。但是,请考虑使用List。