2015-03-31 104 views
0

在我的程序的一部分中,我使用下面的函數來進行非常簡單的計算。但除了第一次循環的第一個輸出都是錯誤的。地圖getFuncTypeOrg有24個像這樣的TreeMaps,大小不同。用於在Java中搜索樹圖的嵌套循環

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

 . 
     . 
orgFuncFunctype.put(org, value); 
    greenNumber =0; 
     totalNum = 0; 
} 
return orgFuncFunctype;