我有2个不同大小的ArrayLists。示例 - Array1.size()= 10 Array2.size()= 5 我希望这些数组在任何时候都具有相同的大小。因此,我有另一个班来确保这一点。但很明显,它并不适合我。请帮忙! 下面是类代码 -
for (int i = Array2.size(); i == Array1.size(); i++) {
Array2.add(i, "Test");
}
以上循环只是为了不添加“测试”。到Array2所以它匹配Array1的大小。有什么想法吗?请帮忙!
答案 0 :(得分:2)
你的循环使用了错误的条件。
for (int i = Array2.size(); i == Array1.size(); i++) {
Array2.add(i, "Test");
}
这意味着循环在i == Array1.size()
时运行,这当然是无稽之谈。
试
for (int i = Array2.size(); i < Array1.size(); i++) {
Array2.add(i, "Test");
}
答案 1 :(得分:1)
根据doc for循环:
for(initialization; termination; increment){ 声明} 使用此版本的for语句时,请记住:
- 初始化表达式初始化循环;循环开始时,它被执行一次。
- 当终止表达式的计算结果为false时,循环终止。
- 每次迭代循环后调用increment表达式;这个表达式增量是完全可以接受的 或减少价值。
在你的情况下,循环是:
for (int i = Array2.size(); i == Array1.size(); i++) {
Array2.add(i, "Test");
}
它从5
(Arrays2.size())
开始,检查i==10
是否为真(读为false),因此它终止而不做任何事情。它根本不会进入循环。
答案 2 :(得分:0)
因为我永远不会等于Array1.size(),所以这个循环永远不会添加任何东西
for (int i = Array2.size(); i == Array1.size(); i++) {
Array2.add(i, "Test");
}