0

此代码按预期工作:它迭代外部 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(coverage),迭代内层ArrayLists(covArrayList),当内层ArrayList的.size()小于6(也试过5&7)时,添加两个空元素结尾。

实际结果:它向每个内部 ArrayList 添加了两个空元素。

插入“System.out.println(coverage.get(i).size());” BEFORE 'if(coverage.get(i).size()<6)' 返回内部 ArrayLists 的正确大小(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 语句后面有一个分号。我羞愧地低下头!!

4

0 回答 0