Witam.
Nie mam zielonego pomysłu, jak zrobić to zadanie przy użyciu jednej tablicy.
Testowałem to na kilkanaście sposobów.
Za każdym razem wywala błąd.
Jedynie w wypadku dwóch tablic wynik jest poprawny, jednk zadanie nie jest zatwierdzone.
Czytałem co znalazłem o Iteratorze (również materiał zaznaczony w artykule z tego rozdziału) w necie - choć nie do końca ten temat rozumiem. Jednak nawet z Iteratorem nie można dodawać w trakcie pętli (iteracji) komórek z listy. Iterator pozwala jedynie bezpiecznie usuwać komórki listy.
Jeszcze myślalem, że przepisanie do zmiennej pomocniczej coś da, ale nic z tego, bydle nie chce zaskoczyć.
Szczerze to sam się już zapętliłem tak, że nie ma warunku wyjścia:)
Będę wdzięczy za sensowne naprowadzenie mnie na rozwiązanie tego zadania.
Widzę, że inny kursant, również na tym poległ:(
package pl.codegym.task.task07.task0720;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
/*
Przestawiono w samą porę
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//tutaj wpisz swój kod
ArrayList<String> tab1 = new ArrayList<>();
int N = Integer.parseInt(reader.readLine());
int M = Integer.parseInt(reader.readLine());
ArrayList<String> tabpom = new ArrayList<>();
String pom = "";
for(int i=0;i<N;i++){
tab1.add(reader.readLine());
}
Iterator<String> iterTab = tab1.iterator();
//Iterator<String> itr2 = ar2.iterator();
for(int i = 0; i < M; i++)
{
pom = iterTab.next();
iterTab.remove();
tabpom.add(pom);
}
tab1.addAll(tabpom);
for(String str: tab1)
System.out.println(str);
}
}