Отправка массива из одного класса в другой и сортировка - PullRequest
0 голосов
/ 11 ноября 2019

Мне нужна помощь. Итак, недавно я начал работать над более сложными вещами в Java, и у меня появилась задача создать программу, которая будет сортировать людей и их количество в порядке убывания от самой большой суммы денег до самой маленькой, ноМассив с именами людей находится в одном классе, количество денег в другом классе, и я должен отправить их в третий класс, а затем отсортировать их. Я попытался заставить это работать и даже спросил своего учителя, но даже код, который он написал для этого, не работает. Это то, что у меня есть.

package classes;

public class Class {

    public static void main(String[] args) {

        String[]Name = {"Frodo","Princess Leia","Sansa Stark","Harry Potter","Spiderman"};
            Class3 send = new Class3();
            send.doesntmatter(Name);

    }
}

Второй класс с деньгами.

package classes;

class Class2 {

    public static void main (String[]args) {

        int[]Money = {3000,400000,50000,100000,25};
            Class3 send = new Class3();
            send.doesntmatter(Money);
    }
}

И третий класс, где все сортируется.

package classes;

class Class3 {

    public void doesntmatter(String[]Name,int[]Money) {

        for(int first = 0; first < 4; first++){

            int most = first;

            for(int current = first + 1; current < 4; current++){
                if (Money[current] > Money[most]){
                    most = current;
                }

                int temp = Money[most];
                Money[most] = Money[first];
                Money[first] = temp;

                String tempString = Name[most];
                Name[most] = Name[first];
                Name[first] = tempString;
            }

            for (int i = 0; i < 4; i++){
                System.out.println(Name[i]);
                System.out.println(Money[i]);
        }
    }
    }
}   

Я знаю, как их сортировать, но у меня проблема с отправкой массивов в другой класс. Может кто-нибудь помочь, пожалуйста? Я надеюсь, вы понимаете, в чем моя проблема.

1 Ответ

0 голосов
/ 11 ноября 2019

Вам нужно сделать так, чтобы функция hasntmatter ВОЗВРАЩАЛА требуемый массив:

public int[] doesntmatter(String[]Name,int[]Money) {

    for(int first = 0; first < 4; first++){

        int most = first;

        for(int current = first + 1; current < 4; current++){

            if (Money[current] > Money[most]){
                most = current;
            }

            int temp = Money[most];
            Money[most] = Money[first];
            Money[first] = temp;

            String tempString = Name[most];
            Name[most] = Name[first];
            Name[first] = tempString;
        }

        for (int i = 0; i < 4; i++){
            System.out.println(Name[i]);
            System.out.println(Money[i]);
        }
    }

    return Money;
}

Это означает, что функция doesntmatter создаст локальную копию массива Money, отсортирует его и вернет. Затем в классе вам нужно изменить этот код:

Money = send.doesntMatter(Money);

Эта последняя строка будет вызывать doesntMatter с несортированным массивом. Функция создаст локальную копию, отсортирует эту локальную копию, вернет ее, а затем эта локальная копия, которую возвращает функция, будет присвоена переменной Money.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...