();
3 ein einfaches Set while-Schleife . Diese Schleife wird so lange gehen , wie beide Listen mindestens ein Element in sich haben, und es wird die kleinste der oberen Elemente des fusionierten Liste zu verschieben : .
//Während beide Listen sind nicht leer
while (! list1.isEmpty () && ! list2.isEmpty ()) {
if ( list1.peek () < = list2.peek ()) {
zusammengeführt . add ( list1.pop ());
} else {
merged.add ( list2.pop ()); }
}
" Peek "-Befehl sieht das Element an der Vorderseite der Liste , während " Pop ", die beide schaut dem Element und entfernt es . Wenn der Vergleich gemacht wird , Sie wollen nur Blick auf die Spitze der Liste zu sehen, welche kleiner ist. Wenn es an der Zeit , um die Listen zusammenführen kommt, wollen Sie zum Mitnehmen den obersten Wert und legte es auf den neuen Listen .
4
Beenden Sie den Job . Sobald entweder leer ist , gibt es keine Notwendigkeit , weiterhin Vergleiche. Daher wird die alte Masche endet, und eine weitere Schleife erstellt , um den Rest des fusionierten Liste mit den übrigen Daten der letzten Liste zu füllen :
//Während die erste Liste nicht leer ist
while {
merged.add ( list1.pop ()); }
( list1.isEmpty ( !))
//während die zweite Liste nicht leer ist.
while {
merged.add ( list2.pop ()); }
( list2.isEmpty ( !))
5
drucken Sie die Ergebnisse , so dass Sie die zusammengeführte Liste kann kontrollieren und sicherzustellen, dass es richtig war :
int x = 1;
für (Doppel y: fusioniert) {
Systems. out.println ( x + "" + y);
x + +; }