确认Java ArrayList包含特定值
我有一个“银行”程序,包含以下代码块:确认Java ArrayList包含特定值,java,if-statement,arraylist,Java,If Statement,Arraylist,我有一个“银行”程序,包含以下代码块: private void doPayment(JTextField accountNumField, JTextField paymentField) { int accountNum = Integer.parseInt(accountNumField.getText()); double paymentAmt = Double.parseDouble(paymentField.getText());
private void doPayment(JTextField accountNumField, JTextField paymentField)
{
int accountNum = Integer.parseInt(accountNumField.getText());
double paymentAmt = Double.parseDouble(paymentField.getText());
String paymentProcessed = "-RECEIPT OF PAYMENT-" + "\n\n" + "Account Number:" + " " + accountObject.getAccountNum() + "Beginning Balance:" + " " + accountObject.getBegBalance()
+ "Payment Amount:" + " " + accountObject.getPaymentAmount() + "Ending Balance:" + " " + accountObject.getEndBalance();
String errorMsg = "ERROR: ACCOUNT NUMBER" + " " + "[" + accountObject.getAccountNum() + "]" + " " + "NOT FOUND. PLEASE VERIFY THAT THE ACCOUNT INFORMATION IS VALID AND CORRECT.";
if (accountsArrayList.contains(accountNum))
{
accountObject.transactionTwo(paymentAmt);
JOptionPane.showMessageDialog(null, paymentProcessed, "PAYMENT PROCESSED SUCCESSFULLY", JOptionPane.PLAIN_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(null, errorMsg, "INVALID ACCOUNT ERROR", JOptionPane.PLAIN_MESSAGE);
}
}
理论上,用户为客户创建帐户后,他/她会导航到“处理支付”窗口,并输入两个内容:accountNum
和paymentAmt
,然后点击提交,此时调用doPayment
方法
此方法的工作原理是,程序迭代包含三项的accountsArrayList
:lastName、firstName和accountNum。如果它发现提供的accountNum
与arrayList中预先存在的accountNum
匹配,则相应地处理事务。如果找不到匹配的accountNum
,则返回错误消息
目前,它只返回if-else
部分的else
中的错误消息。我认为contains(item)
方法会自动遍历Arraylist。如果不是这样,我需要一个增强的FOR循环吗
if (accountsArrayList.contains(accountNum))
accountsArrayList是一个ArrayList,其中包含Account类型的对象
contains仅当AccountsRaylist包含作为参数给定的对象类型Account时,才会返回true。在代码中,accountNum是一个int
因此,编译器的读取方式类似于if(Account==INTEGER)
您必须在ArrayList中抛出每个帐户并获取其accountNum,然后比较这些值
for(int i = 0; i < accountsArrayList.size; i++){
if(accountsArrayList.get(i).accountNum == accountNum){
//success
}
else {
//error
}
}
for(int i=0;i
accountsArrayList.contains(accountNum)仅当它包含整数时才返回true,因为accountNum是int。它是ArrayList类型吗?@mayamar否。我的ArrayList是ArrayList类型,因为它包含一个帐户对象列表,这些对象具有与之相关联的lastName、firstName和accountNum。@mre我会,但是这不是我想要做的相反吗?contains()-方法查找数组的内容。您可以询问accountsArrayList.contains(createAccountOf(lastName,firstName,accountNum))。请在回答中添加解释。仅仅一段代码对未来的用户不会有多大帮助。哦,天哪,它能工作!你真棒!哈哈。非常感谢!