Video: Javaprogrammering - Föreläsning 01 - Kursintroduktion 2024
Arrays i Java är trevliga, men de har några allvarliga begränsningar. Tänk dig att du lagrar kundnamn i en viss förbestämd ordning. Din kod innehåller en array, och arrayen har plats för 100 namn.
Strängnamn [] = Ny sträng [100]; för (int i = 0; i <100; i ++) {namn [i] = ny String ();}
Allt är väl till, en dag visas kundnummer 101. När ditt program körs anger du data för kund 101, och hoppas desperat att matrisen med 100 komponenter kan expandera för att passa dina växande behov.
Ingen sådan tur. Arrays expandera inte. Ditt program kraschar med en ArrayIndexOutOfBoundsException.
"I mitt nästa liv ska jag skapa arrayer med längd 1, 000," säger du till dig själv. Och när ditt nästa liv rullar runt, gör du bara det.
Strängnamn [] = ny sträng [1000 ]; för (int i = 0; i << 1000 ; i ++) {name [i] = new String ();} Men under ditt nästa liv uppstår en ekonomisk recession. I stället för att ha 101 kunder har du bara 3 kunder. Nu slösar du utrymme för 1 000 namn när plats för 3 namn skulle göra.
En dag visas en helt ny kund. Eftersom dina kunder lagras i ordning (alfabetiskt med efternamn, numeriskt med Social Security Number, vad som helst), vill du klämma den här kunden i rätt komponent i din matris. Problemet är att den här kunden tillhör mycket tidigt i matrisen, på komponenten med index 7. Vad händer då?
Du fortsätter att göra detta tills du har flyttat namnet i komponent 7. Sedan lägger du den nya kundens namn i komponent 7. Vad en smärta! Visst klagar inte datorn. Men när du flyttar runt alla dessa namn, slösar du bort bearbetningstiden, slösar bort strömmen och slösar bort alla typer av resurser.
"I mitt nästa liv lämnar jag tre tomma komponenter mellan var och en av namnen. "Och självklart expanderar ditt företag. Fram tills du finner att tre inte räcker.