我有两个字符串列表,listA
和 listB
。 listA
更长,我想通过向其添加空字符串来使 listB
具有相同的大小。
这个有效:
int diff = listA.size() - listB.size()
for (int i = 0; i < diff; i++) {
listB.add("");
}
但这不是:
for (int i = 0; i < (listA.size() - listB.size()); i++) {
listB.add("");
}
这是为什么?
最佳答案
第一个示例变量 diff
是常量,而第二个示例在循环的每次迭代中评估条件,因此由于您在迭代期间添加对象列表的大小会发生变化,因此两个代码片段不会做同样的事情。
我建议您继续使用第一种方法,即预先缓存循环条件的限制,而不是在每次迭代期间重新评估它。
关于java - 为什么我不能在 for 循环条件中使用数学(减法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47964444/