您需要创建一个新数组并复制元素。例如这样的事情:
public long[] removeElement(long[] in, int pos) {
if (pos < 0 || pos >= in.length) {
throw new Arrayindexoutofboundsexception(pos);
}
long[] res = new long[in.length - 1];
System.arraycopy(in, 0, res, 0, pos);
if (pos < in.length - 1) {
System.arraycopy(in, pos + 1, res, pos, in.length - pos - 1);
}
return res;
}
注意:以上尚未经过测试/调试。
您也可以使用for循环进行复制,但arraycopy
在这种情况下应更快。
该org.apache.commons.lang.ArrayUtils.remove(long[], int)
方法最有可能像上面的代码一样工作。如果不需要避免使用第三方开放源代码库,则最好使用该方法。(对@Srikanth Nakka知道/找到它表示敬意。)
之所以不能使用列表来执行此操作,是因为列表要求元素类型是引用类型。