Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止ArrayList添加_Java_Arraylist - Fatal编程技术网

Java 防止ArrayList添加

Java 防止ArrayList添加,java,arraylist,Java,Arraylist,在我的程序中,我将CAD转换为美元作为一个例子,当我投入$10 CAD时,我得到$9.14美元,这是正确的。但在那之后,例如我添加$50 CAD并转换它,它将显示$60 CAD是$54.86 USD,而它应该只转换$50 CAD而不是60。这是因为arraylist中的数字正在相加,不知道该怎么做 下面是一个照片示例 private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { double money

在我的程序中,我将CAD转换为美元作为一个例子,当我投入$10 CAD时,我得到$9.14美元,这是正确的。但在那之后,例如我添加$50 CAD并转换它,它将显示$60 CAD是$54.86 USD,而它应该只转换$50 CAD而不是60。这是因为arraylist中的数字正在相加,不知道该怎么做

下面是一个照片示例

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
    double moneyValue = Double.parseDouble(moneyInput.getText());
    int type = Integer.parseInt(typeInput.getText());
    double conversion;
    initialMoney.add(moneyValue);

    if (moneyValue < 0){
        errorLabel.setText("Value added is negative, please try again.");
    }
    else if(type < 1 || type > 20){
        errorLabel.setText("An error has occurred, please try again.");
    }
    else if (moneyValue > 0){
        if (type == 1){
            conversion = initialCADtofinalUSD(moneyValue);
            finalMoney.add(conversion);
        }
        else if (type == 2){
            conversion = initialCADtofinalEUR(moneyValue);
            finalMoney.add(conversion);
        }
        else if (type == 3){
            conversion = initialCADtofinalCNY(moneyValue);
            finalMoney.add(conversion);
        }
        else if (type == 4){
            conversion = initialCADtofinalGBP(moneyValue);
            finalMoney.add(conversion);
        }
private void addButtonActionPerformed(java.awt.event.ActionEvent evt){
double moneyValue=double.parseDouble(moneyInput.getText());
int type=Integer.parseInt(typeInput.getText());
双转换;
初始化money.add(moneyValue);
如果(货币价值<0){
errorLabel.setText(“增值为负数,请重试”);
}
否则如果(类型<1 | |类型>20){
errorLabel.setText(“发生错误,请重试。”);
}
否则如果(moneyValue>0){
如果(类型==1){
换算=初始加元至最终美元(货币价值);
最终货币。添加(转换);
}
else if(类型==2){
转换=初始现金价值(moneyValue);
最终货币。添加(转换);
}
else if(类型==3){
换算=初始CADTOFINALCNY(货币价值);
最终货币。添加(转换);
}
else if(类型==4){
转换=初始CADTOFINALGBP(货币价值);
最终货币。添加(转换);
}
这里是它输出的地方

    for (int i = 0; i < initialMoney.size(); i++){
        initialMoneyOutput += initialMoney.get(i);
        finalMoneyOutput += finalMoney.get(i);
    }

    DecimalFormat x = new DecimalFormat("0.00");

    textAreaOutput.append("$" + x.format(initialMoneyOutput) + initialCurrencyAcronym + " is $" + x.format(finalMoneyOutput) + finalCurrencyAcronym + "\n");
for(int i=0;i
如果将整数存储在列表中,ArrayList本身不会添加整数。 每个整数都是ArrayList中的一个新Int对象,它与其他值无关。 实现中可能存在一些错误。
您可以发布您正在使用的代码段吗?

在输出它的for循环之前,将initialMoneyOutput和finalMoneyOutput初始化为0

还有,为什么需要在for循环中添加所有初始货币值。 只需获取最新版本并进行转换。

尝试以下代码:

不要使用for循环,只需编写以下内容-

initialMoneyOutput = initialMoney.get(initialMoney.size() - 1);
finalMoneyOutput = finalMoney.get(finalMoney.size() -1 );

给我们看一下你的代码怎么样?你在代码中的某个地方向第一个值添加第二个值。你希望我们如何在不显示它的情况下修复它?你需要共享一些代码,让我们找出错误所在,但我猜你是在重用一个变量(保存要转换的量的变量)然后以某种方式添加到列表中。
ArrayList
没有进行添加;列表只存储您放入其中的对象,它们不会作用于对象的内容。添加。对此表示抱歉。我不确定您的意思。我是个新手,您介意通过teamviewer或其他什么帮助我吗?是的,非常感谢