Video: Java Basics - Array Examples 2025
Klassen ArrayList, der bruges i mange Android app-programmer, er kun toppen af Java-samlingen isberg. Java-biblioteket indeholder mange samlingsklasser, hver med sine egne fordele. Tabellen indeholder en forkortet liste.
Klassenavn | Karakteristik |
---|---|
ArrayList | Et resizable array. |
LinkedList | En liste over værdier, der hver har et felt, der peger på den næste
en i listen. |
Stak | En struktur (som vokser fra bund til top), der er optimeret
for adgang til den øverste værdi. Du kan nemt tilføje en værdi til toppen eller fjerne den fra toppen. |
Kø | En struktur (som vokser i den ene ende), der er optimeret til
tilføjer værdier til den ene ende (bagsiden) og fjerner værdier fra anden ende (fronten). |
PriorityQueue | En struktur, som en kø, der tillader visse (højere prioriterede)
værdier bevæger sig fremad. |
HashSet | En samling indeholdende ingen dobbeltværdier. |
HashMap | En samling af nøgle / værdipar. |
Hver samlingsklasse har sit eget sæt af metoder (ud over de metoder, som det arver fra AbstractCollection, forfader for alle samlingsklasser).
Et array er en særlig slags samling, der er optimeret til indeksering. Det vil sige, du kan nemt og effektivt finde den 100. værdi, der er gemt i en matrix, den 1.000. værdi, der er gemt i en matrix eller den 1.000.000.værdi, der er gemt i en matrix.
Arrayet er et ærværdigt, forsøgt og sandt træk ved mange programmeringssprog, herunder nyere sprog som Java og ældre sprog som FORTRAN. Faktisk går arrayets historie tilbage så langt, at de fleste sprog (herunder Java) har en speciel notation til at håndtere arrayer. Noteringen illustrerer notationen til arrays i et simpelt Java-program.
pakke com. allmycode. samlinger; offentlig klasse SimpleCollectionsDemo {public static void main (String [] args) { String [] myArray = ny String [4]; myArray [0] = "Hej"; myArray [1] = ","; myArray [2] = "læsere"; myArray [3] = "!"; for (int i = 0; i <4; i ++) { System. ud. print (myArray [i]); } System. ud. println (); for (Stringstreng: myArray) {System. ud. print (streng);}}}
Figuren viser udgangen af en kørsel af koden i noteringen. Både den almindelige til loop og den forbedrede for loop viser samme output.
I noteringen bruger den almindelige til sløjfe indekser, med hvert indeks markeret med firkantede parenteser.Som det er tilfældet med alle Java-samlinger, er indledningsværdien indekset 0, ikke 1. Bemærk også nummer 4 i arrayets erklæring - det indikerer at "du kan gemme 4 værdier i arrayet. "
Tallet 4 betyder ikke , at" du kan tildele en værdi til myArray [4]. "Faktisk, hvis du tilføjer en erklæring som myArray [4] =" Ups! "Til koden i noteringen får du en ubehagelig fejlmeddelelse (ArrayIndexOutOfBoundsException), når du kører programmet.
Erklæringen String [] myArray = new String [4] opretter et tomt array og gør myArray-variablen til den tomme matrix. Arrayet kan muligvis gemme så mange som fire værdier. Men i begyndelsen henviser den variable til et array, der ikke indeholder nogen værdier. Det er først, før Java udfører den første opgaveopgørelse (myArray [0] = "Hello"), at arrayet indeholder nogle værdier.
Du kan nemt og effektivt finde den 100. værdi, der er gemt i en matrix eller den 1.000, 000. værdi, der er gemt i en matrix. Ikke dårligt for en dags arbejde. Så hvad er ulempen ved at bruge en matrix? Den største ulempe ved et array er, at hvert array har en fast grænse for antallet af værdier, det kan holde. Når du opretter arrayet i noteringen, forbeholder Java plads til så mange som fire strengværdier.
Hvis du senere i programmet beslutter dig for at gemme et femte element i arrayet, skal du bruge noget klodset, ineffektivt kode for at gøre dig selv til et større array. Du kan også overvurdere den størrelse, du har brug for til en matrix, som vist i dette eksempel:
String [] myArray = new String [20000000];
Når du overvurderer, spilder du sandsynligvis meget hukommelsesplads.
Et andet ubehageligt træk ved et array er det problem, du kan have i at indsætte nye værdier. Forestil dig at have en trækasse for hvert år i din samling af Kejser Konstantin Comics . Serien dateres tilbage til år 307 A. D., da Konstantin blev chef for romerriget.
Du har kun 1, 700 kasser fordi du mangler omkring seks år (hovedsagelig fra årene 1150 til 1155). Kassen er ikke nummereret, men de er stablet en ved siden af en anden i en linje der er 200 meter lang. (Linjen er så længe den 55. etage i en skyskraber er høj.)
I et garage salg i Istanbul finder du en sjælden udgave af Kejser Konstantin Comics fra marts 1152. Efter glæde over din første tegneserie fra år 1152, indser du, at du skal indsætte en ny kasse i bunken mellem årene 1151 og 1153, hvilket indebærer at flytte år 2013 kassen omkring ti centimeter til venstre og derefter flytte 2012 kassen i stedet for 2013-kassen, og derefter flytte 2011-kassen i stedet for 2012-kassen. Og så videre.
Livet for den ivrige Kejser Konstantin Comics samleren er ved at blive trættende! At indsætte en værdi i midten af et stort array er lige så irriterende.