java - 从任意位置删除数组的元素并移动剩余元素

标签 java arrays

我试图通过将值设置为 0 来从数组中删除一个元素后移动数组的元素。只有使用此代码块从数组开头删除一个元素,我才能使其工作。

if (balance[index] == 0 && acctNum[index] != 0) {
    numaccts--;
    acctNum[index] = 0;
    for(int count=0;count<numaccts;count++){
        acctNum[count]=acctNum[count+1];
        balance[count]=balance[count+1];
    }
acctNum[numaccts]=0;
balance[numaccts]=0;
}

这是当我从数组中删除第一个值(567834 之前有一个值)时得到的良好输出。

567834    100.50
111111    0.0
222222    0.0
333333    0.0
444444    0.0

如果我删除第一个值以外的任何值,则数组不会正确移动,这就是结果。 567834 之前应该有一个数字,并且不应该有“0 0.00”。

567834    100.5
0    0.0
222222    0.0
333333    0.0
444444    0.0

我认为问题出在这篇文章中的第一 block 代码上,但我在修复它时遇到了麻烦。我不认为创建临时变量可以解决问题。有什么想法吗?

最佳答案

您只想将东西从新创建的洞之外转移。您可能仍然需要小心,下面的代码处理最后一个槽,而不会读取超出数组末尾的内容。但这应该是一个好的开始。

    if (balance[index] == 0 && acctNum[index] != 0) {
    numaccts--;
    acctNum[index] = 0;//handles case when index is at the end
    for(int count=index;count<numaccts;count++){//start from hole, shift over from beyond there
        acctNum[count]=acctNum[count+1];
        balance[count]=balance[count+1];
    }
acctNum[numaccts]=0;
balance[numaccts]=0;
}

关于java - 从任意位置删除数组的元素并移动剩余元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52142249/

相关文章:

java - 如何在特定时间排队 WorkManager OneTimeWorkRequest

python - 轴超出数组范围

arrays - 在Powershell中将对象追加到数组

javascript - jQuery从JSON解析时找不到元素

java - 为什么spring有强制日志依赖?

java - 调用 getFriends 时抛出异常

javascript - 如何将对象数组展平为每个对象参数的数组?

jquery - JS 对象和数组的选择和操作

Java Prepared statement Sql查询错误

java - Java中方法的内存分配