此代码按预期工作:迭代外部ArrayList(覆盖),并迭代内部ArrayList(covArrayList),当内部ArrayList包含“ noBaseData”时,将在末尾添加5个空元素。
//add empty elements for coverage data when noBaseData found:
for(int i = 0; i<coverage.size(); i++)
{
if(coverage.get(i).contains("noBaseData"))
{
for(int j=0; j<5; j++)
{
coverage.get(i).add("");
}//end for(int j)
} //end if(!coverage)
} //end for(i)
此代码无法正常工作:
//add empty elements when coveragy by only one base station:
for(int i = 0; i<coverage.size(); i++)
{
if(coverage.get(i).size()<6);
{
for(int j=0; j<2; j++)
{
coverage.get(i).add("");
}//end for(int j)
}//end if(coverage)
所需结果: 它迭代外部ArrayList(覆盖),并迭代内部ArrayList(covArrayList),并且当内部ArrayList的.size()小于6(也尝试过5和7)时,会将两个空元素添加到末尾。 / p>
实际结果: 它将两个空元素添加到每个内部ArrayList中。
插入“ System.out.println(coverage.get(i).size());”在“ if(coverage.get(i).size()<6)”之前,返回内部ArrayList的正确大小(5或7)。
在“ if(coverage ...);”之前插入“ System.out.println(coverage.get(i).toString();”)证实了所报告的.size()。
在循环返回.size()/ toString()并添加空元素后,放入“ System.out ...”。
ArrayList覆盖率示例内容:
[[AA-123-12345-SP1.SSF,,100,100,guug04914003.zip],[AA-123-23451-SP1.SSF,noBaseData,,,,,],[AA-123-23451 -SP2.SSF,,,100,4,guug04914003.zip,100,guug04914022.zip]]
“ if(coverage.get(i).lastIndexOf()<6)”将不会编译。讯息:
.java:208:错误:接口List中的方法lastIndexOf无法应用于给定类型; if(coverage.get(i).lastIndexOf()<4); ^ 必需:对象 找到:没有参数 原因:实际和正式论点清单的长度不同 其中E是类型变量: E扩展接口列表中声明的对象 1个错误
我很困惑。有人有什么想法吗?
编辑:rgettman指出了我的错误。我的if语句后有一个分号。 我低下头!!