在我的程序的一部分中,我使用下面的函数进行非常简单的计算。但是除了第一次循环运行的第一个输出都是错误的。地图getFuncTypeOrg
有24个TreeMaps,就像这个具有不同大小的TreeMaps。
AUF_1427=[AUF_1427034486856_435, Function 20, 1.0, NotSet, ORA_1427034499672_440, Organizational unit 7, Computer-based appl. component 3, RechAnwendungsbaustein, hasType, Green]
该函数假设为该数据赋予组织单位7 = [100,1,1]。它的大小大于6,其第五个值等于另一个地图中的org
值,它包含Green
。但它给了我Organizational unit 7=[72.22222222222223, 18.0, 13.0]
我无法弄清楚出了什么问题?
public TreeMap<String, List<Double>> orgFuncFuncType() {
double typeNum = 0;
double greenNumber = 0;
double saturationOrg = 0;
for (String org : getSortedAssignedOrg().values()) {
List<Double> value = new ArrayList<Double>();
for (List<String> entry : getFuncTypeOrg().values()) {
if (entry.size() > 6 && entry.get(5).equals(org)) {
typeNum++;
if (entry.contains("Green")) {
greenNumber++;
}
}
}
saturationOrg = (greenNumber * 100) / typeNum;
value.add(saturationOrg);
value.add(typeNum);
value.add(greenNumber);
orgFuncFunctype.put(org, value);
System.out.println(orgFuncFunctype);
}
return orgFuncFunctype;
}
答案 0 :(得分:0)
我必须在主循环结束时将计数器设置为0
.
.
orgFuncFunctype.put(org, value);
greenNumber =0;
totalNum = 0;
}
return orgFuncFunctype;