2017-01-06 69 views
0

如何在不使用鍵和值的情況下使用map執行除法或乘法。運算符*未定義爲參數類型Map <String,Double>,int

在下面的例子中,我將Developer作爲地圖對象,並希望與10相乘並將其分配給另一個地圖。

private Map<String, Double> Developer; 

有傳,對於開發者

Map<String, Double> EmployeeVal = company.getDep().getProject().get(0).getDeveloper()*100; 

如果我decalaring EmployeeVal爲Double其做工精細getter方法,但我不想這樣做,我想聲明EmployeeVal因爲只有地圖。

+1

你不能乘地圖由'10'或任意數量的與此有關的... – brso05

+0

你不能指定一個號碼作爲'Map'實例。 – Guy

+0

當你將'Developer'乘以10時,你期望什麼? Java不會那樣工作。算術運算僅爲原始數字類型定義。 – hotzst

回答

1

您的問題始於錯誤的命名約定。

您的開發人員對象不是一個「開發人員」,而是一串雙鍵字符串(我想要的名字?)。

除了用大寫字母開頭的變量更好(和標準)之外,您的開發變量應該像developersMap一樣命名。

然後: 是否要將所有開發人員的所有值乘以10?

如果是,做一個遍歷所有這些,乘值,如:

例子1:

for (String devKey: developersMap.keySet()){    
     developersMap.put(devKey,developersMap.get(devKey) * 10.0D); 
    } 

例子2:

for (Entry<String, Double> devEntry: developersMap.entrySet()){   
     devEntry.setValue(devEntry.getValue() *10.0D);   
    } 

但是,如果你想要爲一個開發人員增值,您必須通過密鑰從Map中獲取他的價值,然後乘以並將其放回到Map中。

例如,您有兩個開發人員「John」和「Jane」。你想爲誰增加價值?

「約翰」:

developersMap.put("John",developersMap.get("John") * 10.0D); 
相關問題