|
|
1
8
当您从列表中删除某些内容时,之后所有内容的索引都会更改! 具体来说,在您的实现中,32不会被删除,因为它直接位于另一个偶数之后。 我将使用迭代器遍历列表,并在该迭代器上执行删除操作,如下所示:
|
|
|
2
6
使用
|
|
|
3
4
关于列表索引更改的两个答案都是正确的。但是,也要注意,从ArrayList中删除一个项目的速度很慢,因为它实际上必须将下面的所有条目向下洗牌。相反,我建议创建一个只包含偶数的新列表,然后扔掉旧列表。如果您想在另一个答案中使用基于迭代器的删除代码,它可以很好地处理小结果,如果您使用LinkedList,则可以处理较大的数据集。(我相信这就是名字;我的Java确实有点生锈。) |
|
4
1
|
|
|
5
1
问题是(正如其他人所提到的)在遍历列表时正在修改列表。尝试在“if(偶数==0)”块中添加一行“i--;”。这样地:
|
|
|
6
0
这里有另一种巧妙的过滤奇数元素的方法。不要手动循环收集,而是将工作卸载到 Apache Commons Collections
这是否真的更容易阅读和理解还有争议,但它更有趣。如果某类谓词被频繁使用,它可以被重构成一个静态常量,并在所有地方重用。这将使it的使用变得更加干净:
|
|
|
7
0
我所做的(Intelliji与kotlin)
|
|
|
8
0
|
|
|
9
0
我们可以在ArrayList类中使用removeIf默认方法。
|
|
|
Mark Roworth · 构建MS SQL构造IN的C#等价物? 2 年前 |
|
|
Jack M · 在数组中查找素数时出现逻辑错误 2 年前 |
|
|
Alvaro Vasquez · 如何使用for循环添加数组? 2 年前 |