Как создать цикл, который выталкивает данные из массива в 2 стека, но останавливается после 7 итераций? - PullRequest
0 голосов
/ 03 октября 2019

Я делаю домашнее задание и получил некоторые данные в текстовом файле. Я должен подать данные в 2 стека, но они могут хранить только 7 данных одновременно.

пример данных t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11,t12, t13, t14

Stack<String> lift1 = new Stack<>();
Stack<String> lift2 = new Stack<>();
String[] cargo = ecf.getArray("ConstructionData6.txt");

for(int k=0; k<cargo.length; k++) 
        {
           lift1.push(cargo[k]);

        }


        System.out.println("Lift Cargo: ");
        System.out.println("lift1: " +lift1);
        System.out.println("lift2: " +lift2);

Вывод будет:

lift1: [t1, t2, t3, t4, t5, t6, t7] lift2: [t8, t9, t10,t11, t12, t13, t14]

1 Ответ

0 голосов
/ 03 октября 2019

Поскольку это домашнее задание, я не собираюсь предоставлять какой-либо код Java, просто псевдокод.

В примере набора данных есть 14 элементов, но может ли он иметь 15? 25? Хорошее решение будет достаточно динамичным, чтобы справиться с вариацией. Я предлагаю набор стеков, каждый из которых содержит не более 7 предметов.

// Again, this is not actually Java, just pseudo code

// Create a place to put your restructured data
Collection theStacks = new Collection();
theStacks.push( new Stack<>() );

Stack<> whichStack = null;
String[] cargo = ecf.getArray("ConstructionData6.txt");

for (int k=0; k<cargo.length; k++) {

    // Pick the correct stack to put stuff in
    if (the last stack in theStacks  has length > 7) {
        // If the most recent stack has 7 things in it, make a new one
        theStacks.push( new Stack<>() );
    }
    whichStack = the last stack in theStacks;

    // Push it, push it real good
    whichStack.push(cargo[k]);
}

Еще лучше заменить «магическое число» 7 переменной или константой.

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