Перемещение данных разными способами - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь выяснить, как сохранить данные в подметоде несколько раз. Например, приведенный ниже код создает массив строк, а затем массив перемещается в массив списков пять раз. Как заставить программу сохранять все строки 5 раз. Другими словами, если я распечатываю список массивов newList. Как получить следующий вывод?

слово0, слово1, слово2, слово3, слово4, слово0, слово1, слово2, слово3, слово4, слово0, слово1, слово2, слово3, слово4, слово0, слово1, слово2, слово3, слово4, слово0, слово1, слово2, слово3 , слово4.

public static void main(String[] args) {
    String[] list = new String[5];
    for (int i = 0; i < list.length; i++) {
        list[i] = "word" + i;
    }
    for (int i = 0; i < 5; i++) {
        experiment(list);
    }
}

public static void experiment(String[] list) {
    ArrayList<String> arrList = new ArrayList<>();
    for (int i = 0; i < list.length; i++) {
        arrList.add(list[i]);
    }
    saveItAll(arrList);
}

public static ArrayList<String> saveItAll(ArrayList<String> counter) {
    ArrayList<String> newList = new ArrayList<>();
    newList = counter;
    System.out.println(newList);
    return newList;

}

1 Ответ

0 голосов
/ 05 ноября 2018

Вам нужно хранить его вне метода и статически.

public class Test
{
    static List<String> newList = new ArrayList<>();

    public static void main(String[] args)
    {
        String[] list = new String[5];
        for (int i = 0; i < list.length; i++) {
            list[i] = "word" + i;
        }
        for (int i = 0; i < 5; i++) {
            experiment(list);
        }

        System.out.println(newList);
    }

    public static void experiment(String[] list)
    {
        List<String> arrList = new ArrayList<>();
        for (int i = 0; i < list.length; i++) {
            arrList.add(list[i]);
        }
        saveItAll(arrList);
    }

    public static void saveItAll(List<String> counter)
    {
        newList.addAll(counter);
    }
}

Еще одно слово: вам не понадобится метод saveItAll, так как здесь также выполняет addAll. Тогда вы обычно не используете списки с таким реализующим типом, вы обычно используете интерфейс, чтобы определить его тип, чтобы реализация была переключаемой. Вот для чего нужны интерфейсы.

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