确认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))。请在回答中添加解释。仅仅一段代码对未来的用户不会有多大帮助。哦,天哪,它能工作!你真棒!哈哈。非常感谢!