Schreibe eine Methode
öffentliche statische ArrayList-Zusammenführung (ArrayList a, ArrayList b)
Das führt zwei Array-Listen zusammen, die Elemente aus beiden Array-Listen abwechseln. Wenn eine Array-Liste kürzer als die andere ist, wechseln Sie so lange wie möglich und fügen Sie dann die restlichen Elemente aus der längeren Array-Liste hinzu. Zum Beispiel, wenn a ist
1 4 9 16
und b ist
9 7 4 9 11
dann merge gibt die Array-Liste zurück
1 9 4 7 9 4 16 9 11
Was ich versucht habe, war eine for-Schleife mit if-Anweisungen zu schreiben, so dass eine Zahl von der Array-Liste a zur Merge-Array-Liste hinzugefügt wird, wenn i eine gerade Zahl ist (i% 2 == 0) und von Array-Liste b Ich bin eine ungerade Zahl. Ich bin mir jedoch nicht sicher, wie ich damit umgehen soll, dass eine Array-Liste länger sein kann als die andere. Könnte mir bitte jemand helfen?
BEARBEITEN : Ok, hier ist der Code (aber es ist bei weitem nicht korrekt):
%Vor%Iteratoren scheinen es am einfachsten zu machen
%Vor%Ohne Iteratoren:
%Vor% Beachten Sie, ich habe die Methodensignatur etwas gelockert. Wenn Sie das Zusammenführen mithilfe von Iteratoren implementieren, wird Collection
(oder sogar Iterable
) ausreichen. Andernfalls wird List
ausreichen. Es ist nicht erforderlich, ArrayList
als Methodenargumenttyp zu verwenden
Versuchen Sie Folgendes: Ich implementierte mit Array.
%Vor%Ausgabe:
%Vor%Array1 = {1,2,3} Array2 = {a, b, c, d, e}
Ausgabe = {1, a, 2, b, 3, c, d, e}
Öffentliche Klasse MergeArray {
%Vor%}
Tags und Links java