Schreiben Sie eine Methode, die zwei Array-Listen zusammenführt, wobei Elemente aus beiden Array-Listen alternieren

7

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%     
dreamer 23.04.2013, 09:37
quelle

8 Antworten

3

Ohne Iterator:

%Vor%     
Sam 23.04.2013, 09:48
quelle
11

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

    
Lukas Eder 23.04.2013 09:41
quelle
3

Versuchen Sie Folgendes: Ich implementierte mit Array.

%Vor%

Ausgabe:

%Vor%     
Achintya Jha 23.04.2013 09:48
quelle
2

Sie müssen modulo nicht überprüfen, sonst überspringen Sie jedes zweite Element aus jeder Eingabeliste.

%Vor%

Diese generische Version funktioniert für alle Arten von Listen und generischen Typen.

    
jlordo 23.04.2013 09:50
quelle
1

Hier ist meine Lösung

%Vor%     
Loki 27.12.2014 06:34
quelle
0

Versuchen Sie es

%Vor%     
JRR 23.04.2013 10:07
quelle
0

Array1 = {1,2,3} Array2 = {a, b, c, d, e}

Ausgabe = {1, a, 2, b, 3, c, d, e}

Öffentliche Klasse MergeArray {

%Vor%

}

    
Ajay_Meena 05.06.2016 08:35
quelle
0

Ich habe das in php folgendermaßen gemacht:

%Vor%     
Rojeena Maharjan 15.06.2017 09:10
quelle

Tags und Links