如果您想测试自己: [链接] https://gist.github.com/anonymous/091750563384024e0ffa [链接] https://gist.github.com/anonymous/1f05cdd1d1685d103326
在deleteItem函数中一切正常,它删除了我想要的东西,但当我再次尝试查看数组时,它再次显示原始数组,即使我已经返回一个新数组
public static ItemTracker[] deleteItem(ItemTracker[] listItems) {
for(int i = 0; i < listItems.length; i++) {
if (listItems[i] == null) {
break;
} else if(input.equalsIgnoreCase("Everything")){
listItems = ArrayUtils.remove(listItems, i); // ArrayUtils is actually deleting it but... see output in other function
System.out.println("Content of Array : " + Arrays.toString(listItems)); // It deleted the index that i want and return a new array
// return listItems; I tried to return here as well but same result
}
}
}
return listItems; // which is here
}
原始数组:[naufal,joker,batman,null,null,null,null,null,null,null]
删除项目后输出,我在索引1中删除小丑:
[naufal,蝙蝠侠,NULL,NULL,NULL,NULL,NULL,NULL,NULL]
虽然有效但是......
运行displayArray方法后:
public static void displayArray(ItemTracker[] listItems)
System.out.println("Content of Array : "
+ Arrays.toString(listItems));
}
我明白了:
[naufal,小丑,蝙蝠侠,NULL,NULL,NULL,NULL,NULL,NULL,NULL]
相同的数组;
我发布了多个相同的问题,并尝试了来自这里的人的所有解决方案,但它不起作用。这里真正的问题是什么?,好像我什么都没有。 出于这个问题,这仅适用于数组而不是List或ArrayList
答案 0 :(得分:0)
在您的代码中:
case 3:
deleteItem(listItems);
break;
您忘记将返回的数组分配给listitems:
case 3:
listItems=deleteItem(listItems);
break;