我知道ArrayList可以更简单地完成这项工作,但这只适用于数组,所以我坚持使用它。
到目前为止,这是我的方法:
public boolean remove( String name) {
int temp = 0;
for (int i = 0; i<counter; i++) {
if (friends[i].equals(name)) {
friends[i]=null;
for (int j = i; j > counter; j++) {
friends[j] = friends[j+1];
}
return true;
}
}
return false;
}
我想要的结果是:
String[] friends = {"Sean", "James", "Andrew", "Garfield", "Patrick"};
myfriends.remove("James");
System.out.println(Arrays.toString(friends));
控制台输出:Sean, Andrew, Garfield,Patrick, null
答案 0 :(得分:1)
这是使用调试器很有用的地方。
我会将j > counter
更改为j < counter
并在最后设置friends[counter-1] = null;
,不设置friends[i] = null;
,因为您要做的第一件事就是覆盖它。< / p>
注意:您的代码假设没有重复项。