私は次のコードを持っています。ただし、存在しないarraylistのインデックスにアクセスしているようです...コードは次のとおりです。助けていただければ幸いです。
import java.util.*;
public class Main {
    public static void main(String[] args) {
        ArrayList<BankAccount> allAccounts = new ArrayList<BankAccount>();
        Customer john = new Customer();
        john.firstName = "John";
        john.lastName = "Doe";
        BankAccount johnBa = new BankAccount();
        johnBa.accNumber = "111-222-333";
        johnBa.balance = 200;
        johnBa.myCustomer = john;
        Customer nick = new Customer();
        nick.firstName = "Nick";
        nick.lastName = "James";
        BankAccount nickBa = new BankAccount();
        nickBa.accNumber = "222-333-444";
        nickBa.balance = 100;
        allAccounts.add(johnBa);
        allAccounts.add(nickBa);
        ArrayList<Customer> allCust = new ArrayList<Customer>();
        allCust = extractCustomers(allAccounts);
        for(Customer c : allCust) {
            System.out.println(c.firstName+" "+c.lastName);
        }       
    }
    static ArrayList<Customer> extractCustomers(ArrayList<BankAccount> ba) {
        ArrayList<Customer> cu = new ArrayList<Customer>();
        for(BankAccount b: ba) {
            cu.add(b.myCustomer);
        }
        return cu;
    }
}
public class BankAccount {
    String accNumber;
    double balance; 
    Customer myCustomer;
}
public class Customer {
    String firstName;
    String lastName;
}