Java 从数组中删除前n个元素的逻辑
我需要为赋值编写的方法之一应该是从数组中删除前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] 然而,我得到了
用于(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]