Sortera lista i bokstavsordning
Hej! Varför fungerar inte denna kod? Jag vill returnera en ny lista med namnen bokstavssorterare som finns i listan persons, vilket skall ske utan att ändra på den befintliga listan persons. Jag får felmeddelandet "index out of bounds" för index 0. Persons är en befintlig lista med person-objekt inskrivna som har ett nummer och ett namn.
Du får felmeddelandet för list.set(i,...).
list är nämligen tom (list.size()==0) och dokumentationen säger att du får IndexOutOfBoundsException i detta fall:
https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#set(int,%20E)
Jag har nu skrivit om listan, men den verkar sortera i konstig ordning. Några förslag på vad felet kan vara?
I rad 24 borde du jämföra värdena från list, inte från person.
(Från och med rad 22 borde bu strunta i persons och bara arbeta med list.)
Tack det funkade! Men varför fungerade det. Borde inte inte ge samma resultat att gå igenom den gamla listan?
Grundbulten i denna algoritm är att du efter n iterationer av den yttre loopen har de första n talen i arbetslistan redan i rätt ordning.
Om du jämför värden från den ursprungliga listan, men manipulerar arbetslistan, är detta inte sant längre.
Tack så mycket för din hjälp och tid!