【发布时间】:2015-04-09 15:03:32
【问题描述】:
我今天有一个作业要交(已经很晚了,所以我不会因此而获得功劳,但问题正在困扰我),我无法弄清楚我的一生。分配如下: withoutTen:返回给定数组的一个版本,其中所有 10 都已被删除。 其余元素应根据需要向左移到数组的开头, 并且数组末尾的空格应为 0。 所以 {1, 10, 10, 2} 产生 {1, 2, 0, 0}。 您可以修改并返回给定的数组或创建一个新数组。
withoutTen({1, 10, 10, 2}) --> {1, 2, 0, 0}
withoutTen({10, 2, 10}) --> {2, 0, 0}
withoutTen({1, 99, 10}) --> {1, 99, 0}
我尝试了各种方法来使程序正常工作,但都失败了。
`
// arraylist 已经定义为一个名为 list 的 Integer 类
int i= 0;
//loop
for(i = 0; i < list.size(); i++)
{
if( list.get(i) == 10)
{
list.remove(i);
list.add(0);
}
}
return list;
` 这显示了正确的结果 {1,2,0,0} 但这是唯一的。任何人都可以向我解释是否有一种方法可以更改索引的值(如果它等于 10)并将其作为 0 发送到行尾吗?
【问题讨论】:
-
不应该是
list.remove(i)而不是1吗? -
别担心,我仍然偶尔会在我的代码中混淆 i 和 1。下次尝试了解输出,这将帮助您更快地调试应用程序。顺便说一句,最好在 for 循环声明中直接初始化变量 i。