跳过for循环中的元素并重新分配它

时间:2015-07-30 08:52:16

标签: java loops for-loop foreach

我在JasperSoft中填充参数。在我的报告中,我有参数: Parameter_1,Parameter_2,Parameter_3

int a; 
for (a = 0; a < headers.length; a++) {
        parameters.put("Parameter_" + a, headers[a]);
    }

我以这种方式填充参数并且它有效。现在我想添加一个新的Parameter,Parameter_GroupBy由索引决定(让我们说我希望Parameter_2成为Parameter_GroupBy)所以我这样做了:

int a; 
for (a = 0; a < headers.length; a++) {
        if (a == groupBy) {
            parameters.put("Parameter_GroupBy", headers[groupBy]);
            continue; 
        }
        parameters.put("Parameter_" + a, headers[a]);
    }

此代码的问题(假设groupBy值为2)是Parameter_2为空但我希望它具有Parameter_3的内容

例如

Parameter_1= name 
Parameter_2= date 
Parameter_3= street

我使用第二个代码位获得了什么

Parameter_1 = name 
Parameter_2= 
Parameter_GroupBy= date 
Parameter_3= street

我想按日期分组(参数_2),所以我想要

Parameter_1 = name 
Parameter_2= street 
Parameter_GroupBy= date 
Parameter_3=

如何实现这一目标?使用JDK 1.6和Windows。

1 个答案:

答案 0 :(得分:2)

在我看来,您只需要为“下一个要放置的参数”保留一个单独的索引:

int parameterIndex = 1;
// Note: more idiomatic to declare the iteration variable
// inside the loop
for (int headerIndex = 0; headerIndex < headers.length; headerIndex++) {
    String header = headers[headerIndex];
    if (headerIndex == groupBy) {
        parameters.put("Parameter_GroupBy", header);
    } else {
        parameters.put("Parameter_" + parameterIndex, header);
        parameterIndex++;
    }
}