( ) ;
3 Inrätta en enkel while-slinga . Denna slinga kommer fortsätta så länge båda listorna har minst ett element i dem , och det kommer att flytta den minsta av de bästa delarna till den sammanslagna listan : .
//Även om båda listorna är inte tomma
medan ( ! list1.isEmpty ( ) && ! list2.isEmpty ( ) ) {
p Om ( list1.peek ( ) < = list2.peek ( ) ) {
samman . add ( list1.pop ( ) ) ;
} else {
merged.add ( list2.pop ( ) ) ;
}
}
" Peek " kommando tittar på elementet på framsidan av listan , medan " Pop " båda ser på elementet och tar bort den . När jämförelsen görs , vill du bara att kika på toppen av listan för att se vilken som är mindre . När det blir dags att slå ihop listorna , du vill ta bort det översta värdet och lägg dem på de nya listorna .
4
avsluta jobbet . Så snart någon lista är tom , det finns ingen anledning att fortsätta att göra jämförelser . Därför är den gamla slingändarna och annan slinga skapats för att fylla resten av den sammanslagna listan med de återstående uppgifterna från den senaste listan :
//Medan den första listan inte är tom
medan {
merged.add ( list1.pop ( ) ) ;
} ( list1.isEmpty ( ) ! ) katalog
//Även om den andra listan inte är tom .
medan {
merged.add ( list2.pop ( ) ) ;
} ( list2.isEmpty ( ) ! )
5
Skriv ut resultatet så att du kan inspektera sammanslagna listan och se till att det fungerade korrekt :
int x = 1 ;
för ( Dubbel y : samman ) {
System . out.println ( x + " " + y ) ;
x + + ;
}