Java 查找ArrayList对象-搜索不起作用?

Java 查找ArrayList对象-搜索不起作用?,java,arraylist,Java,Arraylist,我正在创建一个银行,可以存款,取款,创建帐户,并显示所有余额 我的createButton方法工作正常- public void createNewAccountButtonPanel(){ //create button createButton = new JButton("Create New Account"); //Add Listener modeled from InputFrame.Java from GroupProject class

我正在创建一个银行,可以存款,取款,创建帐户,并显示所有余额

我的createButton方法工作正常-

    public void createNewAccountButtonPanel(){
    //create button
    createButton = new JButton("Create New Account");
    //Add Listener modeled from InputFrame.Java from GroupProject
    class AddCreateNewListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent CreateNew){
            //account number has to be 4 digits. Balance has to be 100 or more
            if(accountField.getText().trim().length() != 4 || balanceField.getText().trim().length() < 3){
                //not correct input, tell the user to enter the correct input
                System.out.println("Failed to create a Bank Account!");
                textArea.append("Please enter a Account number and a Balance!" + "\n");
            }
            else
            {//read the input
                System.out.println("Creating a Bank Account!");
                Integer accountNumber = Integer.parseInt(accountField.getText());
                Double amount = Double.parseDouble(balanceField.getText());
                getBank().createNew(accountNumber, amount);
                textArea.append("You created " + getBank().accounts.get(getBank().accounts.size()-1) + "   \n");
            }
            }   
    }
    createNew = new AddCreateNewListener();
    createButton.addActionListener(createNew);  
}
我错过了什么?这也导致我的存款和取款按钮现在工作。我的显示所有帐户工作正常

编辑:似乎我的搜索正在工作,我添加了一个
中断
。现在的问题是如何在gui的文本区域显示平衡-它始终显示0.0

    public void displayBalancePanel(){
    //create the button
    displayBalanceButton = new JButton("Display The Balance");
    //Add listener modeled from InputFrame.java from GroupProject
    class AddDisplayBalanceListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent DisplayBalance){
            //read the input
            Integer accountNumber = Integer.parseInt(accountField.getText());
            System.out.println("accountNumber to Display Balance for: " + accountNumber);
            getBank().displayBalance(accountNumber, amount);
            textArea.append("The Balance for Account: " + accountNumber + " is " + getAmount() + "\n");
        }
    }
    displayBalance = new AddDisplayBalanceListener();
    displayBalanceButton.addActionListener(displayBalance);
}
新搜索-

    public BankAccount search(Integer accountNumber){
    BankAccount found = null;
    for(BankAccount a : accounts){
        if(a.getAccountNumber().equals(accountNumber)) {
            System.out.println("Found the account!");
            found = a;     
            System.out.println("a: " + a);
            break;
        }
        else{
            System.out.println("The Account Number you entered was not found.");
            found = null;
        }
    }       
    return found;
}

找到帐户后,您的
for
循环将继续通过所需的
帐户。然后,
else
found
设置回
null


找到帐户后,只需从
if
块的右侧返回即可。您甚至不需要
else


事实上,您根本不需要找到变量
。只需在
if
块中直接返回
a
,方法中的最后一条语句可以更改为
returnnull
如果找不到它。

a.getAccountNumber()的确切返回类型是什么<代码>整数
int
?getAccountNumber()返回int谢谢,一旦找到帐户,我就将其修改为“break”。等我们把其他部件修好后,我会把它清理干净
    public BankAccount search(Integer accountNumber){
    BankAccount found = null;
    for(BankAccount a : accounts){
        if(a.getAccountNumber().equals(accountNumber)) {
            System.out.println("Found the account!");
            found = a;     
            System.out.println("a: " + a);
            break;
        }
        else{
            System.out.println("The Account Number you entered was not found.");
            found = null;
        }
    }       
    return found;
}