gpt4 book ai didi

java - ArrayList 元素替换为新条目

转载 作者:行者123 更新时间:2023-12-01 07:25:38 26 4
gpt4 key购买 nike

我是 Java 新手,正在使用对象的 ArrayList 在 Java 中编写一个小型应用程序。

    Transaction trans= new Transaction();
ArrayList<Transaction> arrTrans = new ArrayList<Transaction>();

当我调试应用程序时,我可以看到,当我向 arrayList 添加新元素时,所有之前的 arrTrans 元素都被替换为新元素。

private void add(Transaction trans){
trans.description= (String)(jTextField1.getText());
trans.type=(String) (jComboBox1.getSelectedItem());
trans.amount=(String)(jTextField2.getText());
trans.date=(String)(jTextField3.getText());
arrTrans.add(trans);
}

我认为 ArrayList 对象为要添加到列表中的每个新元素添加新索引,并且从不修改以前的元素。我的代码有什么问题吗?

最佳答案

您始终添加相同的 Transaction 对象,并且仅更新其内容。前面的元素不会被替换,它们实际上都是相同的元素。

如果将对象添加到ArrayList,则不会自动创建该对象的副本。您每次都必须实例化一个 new Transaction(),填充其字段,并将其添加到 ArrayList 中。

您的代码可能如下所示:

private void add() {
Transaction trans = new Transaction();
trans.description = (String) jTextField1.getText();
trans.type = (String) jComboBox1.getSelectedItem();
trans.amount = (String) jTextField2.getText();
trans.date = (String) jTextField3.getText();

arrTrans.add(trans);
}

关于java - ArrayList 元素替换为新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com