Video: How to Compile and Run C program Using GCC on Ubuntu 18.04 LTS (Linux) 2024
Arrays op Java zijn leuk, maar ze hebben enkele ernstige beperkingen. Stel u voor dat u klantnamen opslaat in een vooraf bepaalde volgorde. Uw code bevat een array en de array heeft ruimte voor 100 namen.
Stringnaam [] = nieuwe reeks [100]; for (int i = 0; i <100; i ++) {name [i] = new String ();}
Het gaat goed totdat op een dag klantnummer 101 verschijnt. Terwijl uw programma wordt uitgevoerd, voert u gegevens in voor klant 101, in de hoop dat de array met 100 componenten kan worden uitgebreid om aan uw groeiende behoeften te voldoen.
Geen geluk. Arrays breiden niet uit. Je programma loopt vast met een ArrayIndexOutOfBoundsException.
"In mijn volgende leven maak ik reeksen van lengte 1, 000", zegt u tegen uzelf. En wanneer je volgende leven rondrent, doe je dat gewoon.
Stringnaam [] = nieuwe tekenreeks [1000 ]; for (int i = 0; i << 1000 ; i ++) {name [i] = new String ();} Maar tijdens uw volgende leven vindt een economische recessie plaats. In plaats van 101 klanten, hebt u slechts 3 klanten. Nu verspilt u ruimte voor 1, 000 namen wanneer ruimte voor 3 namen zou doen.
Op een dag verschijnt er een gloednieuwe klant. Omdat uw klanten op volgorde worden opgeslagen (alfabetisch op achternaam, numeriek op sofinummer, wat dan ook), wilt u deze klant in het juiste onderdeel van uw array persen. Het probleem is dat deze klant al heel vroeg in de array thuishoort, bij de component met index 7. Wat gebeurt er dan?
Je blijft dit doen tot je de naam in component 7 hebt verplaatst. Dan leg je de nieuwe klant in component 7. Wat een pijn! OK, de computer klaagt niet. Maar terwijl je al deze namen rondloopt, verspil je de verwerkingstijd, verspil je energie en verspilt je allerlei bronnen.
"In mijn volgende leven laat ik drie lege componenten tussen elke twee namen achter. "En natuurlijk breidt uw bedrijf zich uit. Totdat je uiteindelijk vindt dat drie niet genoeg zijn.