对于参数类型,未定义operator * Map <string,double>,int

时间:2017-01-06 13:42:16

标签: java

如何使用地图进行除法或乘法而不使用键和值。

在下面的示例中,我将Developer作为地图对象,并希望乘以10并将其分配给另一个地图。

 private Map<String, Double> Developer;

具有开发人员的setter,getter方法

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

如果我将EmployeeVal声明为Double的工作正常,但我不想这样做,我想将EmployeeVal声明为Map。

1 个答案:

答案 0 :(得分:1)

您的问题始于错误的命名约定。

您的Developer对象不是&#34;开发人员&#34;,而是带有键为String的双打集合(我想是名字?)。

除了使用大写字母开始变量更好(和标准)之外,您的Developer变量应该像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中。

例如,你有两个开发人员&#34; John&#34;和&#34;简&#34;。你想为谁增加价值?

&#34;约翰&#34;:

developersMap.put("John",developersMap.get("John") * 10.0D);