Почему я получил позицию в 0? Когда это должно быть 1 - PullRequest
0 голосов
/ 20 июня 2019

Я изучаю Java, теперь я в ArrayList, я написал несколько методов о банковском деле, когда я хочу добавить нового клиента в определенную ветку, позиция всегда возвращает 0. Это исходный код методов, которые яЯ говорю о:

  • Экземпляры в Главном классе:

    public static Scanner scanner = new Scanner(System.in);
    public static Bank newBank = new Bank("BMCE");
    
  • Основной класс (статический метод добавления нового клиента):

    public static void addNewCostumer(){
    System.out.println("Choose a branch :");
    String branchChoosed = scanner.nextLine();
    Branches branches = newBank.queryBranch(branchChoosed);
    if(branches == null){
        System.out.println("There are a problem, or you are entered a wrong name of branch");
    
    }
    else{
        System.out.println("Enter the name costumer :");
        String nameOfCostumer = scanner.nextLine();
        System.out.println("Enter the transaction number :");
        double transactions = scanner.nextDouble();
        scanner.nextLine();
        if(newBank.addNewCostumer(branches,nameOfCostumer,transactions)){
            System.out.println("The costumer was created in branch name :"+branches.getNameOfBranch());
    
    
        }else{
    
            System.out.println("Sorry you dindn't create a costumer in "+branches.getNameOfBranch()+" Try again please :)");
    
        }
    
    }
    
  • Экземпляры в классе банка:

    private String name;
    private ArrayList<Branches> branchesArrayList = new ArrayList<>();
    
  • Класс банка:

    public boolean addNewCostumer(Branches nameOfExistingBranch,String nameOfNewCostumer,double newTransaction){
    int position = findBranch(nameOfExistingBranch);
    
    
    if(position<0){
        System.out.println("There is not branch with this name");
        return false;
    }
    else{
        if(this.branchesArrayList.get(position).findCostumer(nameOfNewCostumer)>=0){
            System.out.println("You have already an existing costumer with that name");
            return false;
        }
        else{
    
            this.branchesArrayList.get(position).addNewCostumer(nameOfNewCostumer,newTransaction);
            return true;
    
        }
    
    }
    
    }
    
  • Метод, который находит филиалы:

    public int findBranch(Branches branches){
    int position = this.branchesArrayList.indexOf(branches);
    if(position>=0){
    
        return position;
    
    }
    else
        return -1;
    }
    
  • Входные данные:

    0-Mdiq
    1-Casa
    2-Rabat

Когда я добавляю нового клиента в Рабат или филиал Casa, клиент всегда записывает в Mdiq (позиция 0).

1 Ответ

0 голосов
/ 21 июня 2019

Извините, я нашел ошибку в своем коде, поэтому проблема была решена, благодаря методу запроса мне было написано this.branchesArrayList.get(0); вместо использования позиции в качестве параметра

...