gpt4 book ai didi

java - 在两个部分不同的 ArrayList 之间传输数据

转载 作者:行者123 更新时间:2023-11-30 02:11:05 25 4
gpt4 key购买 nike

我有两个已填充数据的类。它们的结构相似,并且两个类都包含一个与另一个类的 ArrayList 具有完全相同结构的 ArrayList。

ArrayList 称为 t30tB,它们的结构是 (BigDecimal, String)。在 ma​​in 中查找 new transactionB()new Transaction30() ,它会变得更加清晰。

我想在这些 ArrayList 之间进行“事务”,因此,将值从 ArrayList (t30) 移动(或复制和删除)> ArrayList (tB)

交易O:

public class TransactionO{
public ArrayList<TransactionB>tBpost = new ArrayList<TransactionB>();
public TransactionO(/*constructor as seen in main...*/){/*stuff*/} ^
// |
public void addBPost(TransactionB b) { // |
this.tBpost.add(b); //adding ---------------------
}
}

交易00:

public class Transaction00 {
public ArrayList<Transaction30>t30post = new ArrayList<Transaction30>();
public Transaction00(/*constructor as shown below*/){/*stuff*/} ^
// |
public void add30Post(Transaction30 t30) {// |
this.t30post.add(t30); //adding ------------------
}
}

主要:

TransactionO tO = null;
Transaction00 t00 = null;
private static List<TransactionO> allTransactionsIn = new ArrayList<TransactionO>();
private static List<Transaction00> allTransactionsOut = new ArrayList<Transaction00>();
//reading from file, parsing data, and finally storing the data in the class obj
tO = new TransactionO(accountNumber,currency, paymentDate,currentAmount,transactionQty);
tB = new TransactionB(amount,reference); //(BigDecimal, String)
tO.addBPost(tB);
// ^adding the class TransactionB into arraylist "tB" into TransactionO

t00 = new Transaction00(accountNumberSend,clrNrSend);
t30 = new Transaction30(amountSend,referenceSend); //(BigDecimal, String)
t00.add30Post(t30);
// ^adding the class Transaction30 into arraylist "t30" into Transaction00

//finally
allTransactionsIn.add(tO);
allTransactionsOut.add(t00);

摘要:在这些 ^ allTransaction*** ArrayList 中,有不同的类对象,但结构相同的 ArrayList (BigDecimal, String)

arrayList 的 ASCII 结构allTransactionsOut:

--------------------------------------------------------
| t00 (constructor-values) | t00.t30 (arrayList-values) | --------------copy
-------------------------------------------------------- |
Structurally different ^ | Structurally same ^ (BigDecimal, String) |

arrayList 的 ASCII 结构allTransactionsIn:

--------------------------------------------------------               |
| tO (constructor-values) | tO.tB (arrayList-values) | <------------
--------------------------------------------------------
Structurally different ^ | Structurally same ^ (BigDecimal, String)

我如何将这些arrayList-values从一个列表转移到另一个列表? (不是构造函数值)

如果您需要进一步的解释,请随时询问。谢谢

最佳答案

尽管 TransactionBTransaction30 恰好都有 BigDecimalString 类型的字段,但 Java 却没有不认为它们有关联。

如果您想将这两种类型存储在 ArrayList 中,那么您需要确保这两种事务类型继承自同一父级(要么扩展公共(public)类型,要么实现公共(public)接口(interface))。

例如

public abstract class ParentTransaction {
protected BigDecimal value1
protected String value2

public ParentTransaction(BigDecimal value1, String value2) {
this.value1 = value1;
this.value2 = value2;
}
}

public class TransactionB extends ParentTransaction {
public TransactionB(BigDecimal amountSend, String referenceSend) {
super(amountSend, referenceSend);
}
BigDecimal getAmountSend() {
return value1;
}
String getReferenceSend() {
return value2;
}
}

public class Transaction30 extends ParentTransaction {
public TransactionB(BigDecimal account, String reference) {
super(account, reference);
}
BigDecimal getAccount() {
return value1;
}
String getReference() {
return value2;
}
}

关于java - 在两个部分不同的 ArrayList 之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50108828/

25 4 0