我有这个方法的头:
public boolean remove(Object anObject)
{....}
我需要使用方法体从int
数组中删除指定元素的第一个匹配项,并将数组中的其余元素向左移位。我已经考虑过从
for (int i = 0; i < arr.length; i++) {
if (arr[i] == anObject)
}
但这并不像预期的那样有效。任何帮助都是最好的,谢谢!
发布于 2018-08-29 08:18:35
我有一个解决方案给你。使用for循环,该循环运行并将所有数组数据移位一位。
在原始代码的基础上构建:
for (int i = 0; i < arr.length-1; i++) {
if (arr[i].equals(anObject)){
for (int k = i; k < arr.length; k++){ //starts replacing ON the duplicate value
arr[k] = arr[k+1]; //replaces the value with the 1 higher one; aka moving all your array values left
}
}
就像@camickr说的那样:
您需要使用stringName.equals(Object);来比较字符串,因为它们是非原生数据类型。
希望这能有所帮助。祝好运。
发布于 2018-08-29 07:59:47
正如camickr所提到的,通过使用ArrayList可以很容易地实现您想要实现的目标。总的来说,对对象使用off ArrayLists通常可以被认为是更好的实践。
只需声明一个您正在使用的对象类型的ArrayList,然后使用
myArrayList.add(object);
myArrayList.remove(index);
https://stackoverflow.com/questions/52067629
复制相似问题