java - Java从数组中删除项目

标签 java arrays algorithm

这里有什么问题?我想从数组中删除一个项目,但它显示给我

error ArrayIndexOutBound exception

public class delete {

    public static void main(String[]args) {
        int i;

        //delete  item from array
        int k[] = new int[]{77,99,44,11,00,55,66,33,10};

        //delete 55
        int searchkey=55;

        int nums=k.length;
        for ( i=0;i<nums;i++)
            if (k[i]==searchkey)
                break;

        for (int t=i;t<nums;t++)
            k[t]=k[t+1];
        nums--;

        for (int m=0;m<nums;m++) {
            System.out.println(k[m]);
        }
    }
}

最佳答案

for (int t=i;t<nums-1;t++)  //Should be -1 here, as k[t+1] will be out of bounds if t = nums-1

或者在移动数字之前 nums-- 的另一种变体

nums--;
for (int t=i;t<nums;t++)
   k[t]=k[t+1];

关于java - Java从数组中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832420/

相关文章:

Java proc.waitfor() 在 Mac 上被忽略

java - 如何使用 Spring MVC 和 MockMVC 为文件上传发布多部分/表单数据

java - Swing:组件背景的问题

java - 当两个矩形不相交时,我的 Javafx 程序的转换不会继续播放

c# - 如何在遍历树结构时匹配路径

python - RGB 是从 ImageGrab.grab().load() 中获取的,是数组还是字符串

c++ - 使用 new 实例化后显示垃圾的 char 数组

c - 表中的最小值和最大值

java - 基于子字符串在 Java 中对字符串进行排序

algorithm - 最大限度地减少运输时间