0

我试图让一个按钮在同一个输入框中处理多个输入。我有 16 个输入框,每个输入框都有自己的 id# (YfProduct),我将其用作我的 hashmap 的键。对于输入值,我有权重。用户将在他们希望的任意多个输入框中输入他们想要的任何双倍权重,然后单击一个按钮(a4j:commandButton)来激活下面的方法。

private HashMap<Integer, Double> storeWeight = new HashMap<Integer, Double>(); 

public void storeWeight(Yieldfl yieldfl){
    for (YieldItem row : yielditem) {
    storeWeight.put(row.getYfProduct(), row.getWeight());
    System.out.print(storeWeigt)}
}

现在,此代码将使用右键设置适当的值,并用输入的新输入替换这些值并单击另一个按钮。但是,我要做的是让 bean 保存以前的值,并将输入的下一个值与具有相同键的上一个条目相加。因此,在用户输入结束时,HashMap 将包含 16 个键,每个键的各个值的总和相加。如果没有一些严肃的硬编码,我无法想出一种方法来做到这一点。非常感谢帮助。

4

1 回答 1

0

所以这实际上是一个简单的解决方案,我将把解决方案放在这里,以防有人遇到类似的问题。这是我第一次使用 HashMap,所以我请了一位同事帮助我。我需要该值来调用密钥。

storeWeight.put(row.getYfProduct(), storeWeight.get(row.getYfProduct() + (row.getWeight()));

并避免空指针:

public void storeWeight(Yieldfl yieldfl){
    for (YieldItem row : yielditem) {
        Double oldValue = storeWeight.get(row.getYfProduct());
        if (oldValue == null)
            oldValue = 0.0;
    storeWeight.put(row.getYfProduct(), oldValue + (row.getWeight()));
    row.setWeight(0.0);
    System.out.print(storeWeight);}
}
于 2012-11-27T22:11:39.167 回答