更新Java ArrayList中的值

更新Java ArrayList中的值,java,arraylist,add,Java,Arraylist,Add,我不太确定这个问题的标题,提前道歉。我目前在Bidderray中存储了一个值,比如说50。我希望能够通过输入文本字段的任何给定数字来增加50 如果我想在现有50的基础上再加10,它将返回60。目前,当我添加10时,50被10取代,而不是将两者相加。我理解我的代码为什么要这样做,但还没有找到任何教程或提示我应该做什么 代码如下: package abc; import java.awt.*; public class Funds extends javax.swing.JFrame {

我不太确定这个问题的标题,提前道歉。我目前在Bidderray中存储了一个值,比如说50。我希望能够通过输入文本字段的任何给定数字来增加50

如果我想在现有50的基础上再加10,它将返回60。目前,当我添加10时,50被10取代,而不是将两者相加。我理解我的代码为什么要这样做,但还没有找到任何教程或提示我应该做什么

代码如下:

package abc;

import java.awt.*;


public class Funds extends javax.swing.JFrame {
    int i = 0;

    Bidder bidbal = new Bidder();
    /** Creates new form Funds */
    public Funds() {
        initComponents();
    }

    private void addActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int f = 0;
        boolean validEntries = true;

        try{
            f = Integer.parseInt(amount.getText());
            Bidder.BidderArray.get(i).setRegFee(f);
        } catch (Exception error) {
            validEntries = false;
            amount.setBackground(Color.red);
        }
        if (validEntries) {
            Bidder.exportBidder();
            Home home = new Home();
            home.setVisible(true);
            this.dispose();
        }
    }
}
你实际上没有添加任何内容 显然只是将某个值设置为
f
,您必须
获取当前值,添加到该值,然后将其放回。但这只是一个猜测,因为我们没有足够的实际代码来知道您做错了什么。

您实际上没有添加任何内容
    f = Integer.parseInt(amount.getText());
    Bidder.BidderArray.get(i).setRegFee(f);
显然只是将某个值设置为
f
,您必须
获取当前值,添加到该值,然后将其放回。但这只是一个猜测,因为我们没有足够的实际代码来知道您做错了什么

    f = Integer.parseInt(amount.getText());
    Bidder.BidderArray.get(i).setRegFee(f);
在这里,您似乎正在获取用户的输入(
f
),只需将数组的元素值设置为它。听起来您想要做的是在将元素的值设置为新的组合值之前,将该输入(
f
)和数组的元素现有值合并(读取:添加)它们

在伪代码中,您正在执行以下操作:

f := get user's input
setValue(f)
您需要做的是:

f := get user's input
g := get current value
setValue(f + g)
在这里,您似乎正在获取用户的输入(
f
),只需将数组的元素值设置为它。听起来您想要做的是在将元素的值设置为新的组合值之前,将该输入(
f
)和数组的元素现有值合并(读取:添加)它们

在伪代码中,您正在执行以下操作:

f := get user's input
setValue(f)
您需要做的是:

f := get user's input
g := get current value
setValue(f + g)

您必须将其添加到旧值中:

  //Add old to new (Unless you have a different method set for get like
  //getRegFee (Not sure how bidder is implemented))
  Bidder.BidderArray.get(i).setRegFee(Bidder.BidderArray.get(i) + f);

您必须将其添加到旧值中:

  //Add old to new (Unless you have a different method set for get like
  //getRegFee (Not sure how bidder is implemented))
  Bidder.BidderArray.get(i).setRegFee(Bidder.BidderArray.get(i) + f);

您必须获取当前费用,添加值,然后设置费用:

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).setRegFee( f + Bidder.BidderArray.get(i).getRegFee() );
或者您可以添加一个新方法,即
投标人
类,该类会增加费用:

class Bidder
{
    //...
    public void addToRegFee( int amount )
    {
        this.regFee += amount;
    }
}

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).addToRegFee( f );

您必须获取当前费用,添加值,然后设置费用:

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).setRegFee( f + Bidder.BidderArray.get(i).getRegFee() );
或者您可以添加一个新方法,即
投标人
类,该类会增加费用:

class Bidder
{
    //...
    public void addToRegFee( int amount )
    {
        this.regFee += amount;
    }
}

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).addToRegFee( f );

我不知道什么是
投标人
,但您的问题的一个可能原因是,当您将这10个元素添加到ArrayList时,实际上是在将引用更改为新的ArrayList,然后将这10个元素添加到新列表中。@NESPowerGlove是的,我知道这就是我目前正在做的,如何在投标人阵列中现有的50个基础上增加10个?目的是增加用户拥有的令牌数量。token total会在Home classMore中显示更多问题和对您只知道的内容的引用!任何人都应该如何回答关于您未发布的代码的问题?我不知道什么是
投标人
,但您的问题的一个可能原因是,当您将10个元素添加到ArrayList时,实际上您正在将引用更改为新的ArrayList,然后将10个元素添加到新列表中。@NESPowerGlove是的,我知道这就是我目前正在做的事情,我如何将10个元素添加到投标人数组中现有的50个元素中?目的是增加用户拥有的令牌数量。token total会在Home classMore中显示更多问题和对您只知道的内容的引用!任何人都应该如何回答关于你没有发布的代码的问题?谢谢@clcto你建议的第一种方法完全按照我的意图工作。很抱歉对你们中的那些了解我的人含糊其辞。我是Java新手,我不完全确定要发布多少代码感谢您@clcto您建议的第一种方法完全符合我的预期。很抱歉对你们中的那些了解我的人含糊其辞。我是Java新手,我不完全确定要发布多少代码