Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数组中删除前n个元素的逻辑_Java_Arrays - Fatal编程技术网

Java 从数组中删除前n个元素的逻辑

Java 从数组中删除前n个元素的逻辑,java,arrays,Java,Arrays,我需要为赋值编写的方法之一应该是从数组中删除前n个元素。但是,我没有得到正确的输出。我相信我有一个错误,但我不确定如何修复它 解决方案应尽量保持代码的格式 用于(int i=n;i>=0;i--){ elementData[i]=elementData[i+1]; 大小--; } 代码所说的是,对于n及以下的每个元素,将其替换为索引中高于它的任何元素。然后每次执行此操作时,都要减小大小变量,这将导致打印时看起来像是删除操作 我期望[0,1,2,4,6,4,7]的输出是[4,7] 然而,我得到了

我需要为赋值编写的方法之一应该是从数组中删除前n个元素。但是,我没有得到正确的输出。我相信我有一个错误,但我不确定如何修复它

解决方案应尽量保持代码的格式

用于(int i=n;i>=0;i--){
elementData[i]=elementData[i+1];
大小--;
}
代码所说的是,对于n及以下的每个元素,将其替换为索引中高于它的任何元素。然后每次执行此操作时,都要减小大小变量,这将导致打印时看起来像是删除操作

我期望[0,1,2,4,6,4,7]的输出是[4,7]

然而,我得到了[7]


在上面的例子中,n被传递为5。

我意识到这是一个寻找实现的赋值问题,但是任何在Java中这样做的人都应该使用提供的API。例如:

elementData = Arrays.copyOfRange( elementData, n, elementData.length ); // originalArray, startIndex, end
public int[] trimArray(int[] source, int trimBy) {
  if (trimBy > source.length) return source;
  return Arrays.copyOfRange(source, trimBy, source.length);
}

trimArray(new int[]{0, 1, 2, 4, 6, 4, 7}, 5) // -> [4, 7]
您只需使用以下功能:

int[] result = new int[elementData.length - n];
for (int i = 0; i < result.length; i++) {
    result[i] = elementData[n + i];
}
您可以使用过滤器:

let a = [0, 1, 2, 4, 6, 4, 7]
您希望获得
[4,7]
删除
5
第一个元素,因此键入

a = a.filter((_, i) => i >= 5)
现在


假设
n==5
?请显示代码段的其余部分。该循环信息不足。解决方案应尽可能保持代码的格式。-这是命令吗?无论你在做什么,你都需要把它设为n-1而不是n。@GhostCat是一个合理的关注点,我就是这样写的,因为它就是这样打印的。这是一个数组列表。谢谢你的回答,但我应该在这个作业中使用for循环。
a = a.filter((_, i) => i >= 5)
a = [4, 7]