Video: Curso Java 12 - Objetos @JoseCodFacilito 2025
ArrayList-klassen som brukes i mange Android-appprogrammer er bare toppen av Java-samlingenes isberg. Java-biblioteket inneholder mange samlingsklasser, hver med sine egne fordeler. Tabellen inneholder en forkortet liste.
Klassenavn | Karakteristisk |
---|---|
ArrayList | En resizable array. |
LinkedList | En liste over verdier som hver har et felt som peker til neste
en i listen. |
Stack | En struktur (som vokser fra bunn til topp) som er optimalisert
for tilgang til den øverste verdien. Du kan enkelt legge til en verdi på toppen eller fjerne den fra toppen. |
Queue | En struktur (som vokser i den ene enden) som er optimalisert for
legger til verdier i den ene enden (baksiden) og fjerner verdiene fra den andre enden (fronten). |
PriorityQueue | En struktur, som en kø, som gjør at visse (høyere prioriterte)
-verdier beveger seg mot forsiden. |
HashSet | En samling som ikke inneholder dupliserte verdier. |
HashMap | En samling av nøkkel / verdi par. |
Hver samlingsklasse har sitt eget sett med metoder (i tillegg til metodene som den arver fra AbstractCollection, forfederen til alle samlingsklassene).
En matrise er en spesiell type samling som er optimalisert for indeksering. Det vil si at du enkelt og effektivt kan finne den 100. verdien lagret i en matrise, den 1. 000. verdien lagret i en matrise, eller verdien 1 000 000 verdi lagret i en matrise.
Arrayet er en ærverdig, prøvd og sann funksjon i mange programmeringsspråk, inkludert nyere språk som Java og eldre språk som FORTRAN. Faktisk går arrayets historie tilbake så langt at de fleste språk (inkludert Java) har spesiell notasjon for å håndtere arrays. Noteringen illustrerer notasjonen for arrays i et enkelt Java-program.
pakke com. allmycode. samlinger; offentlig klasse SimpleCollectionsDemo {public static void main (String [] args) { String [] myArray = ny String [4]; myArray [0] = "Hei"; myArray [1] = ","; myArray [2] = "lesere"; myArray [3] = "!"; for (int i = 0; i <4; i ++) { System. ute. print (myArray [i]); } System. ute. println (); for (String streng: myArray) {System. ute. skriv ut (streng);}}}
Figuren viser utgangen av en kjøring av koden i oppføringen. Både vanlig for sløyfe og forsterket for sløyfe viser samme utgang.
I noteringen bruker den vanlige for sløyfen indekser, med hver indeks markert med firkantede parenteser.Som det er med alle Java-samlinger, er den opprinnelige verdienes indeks 0, ikke 1. Merk også tallet 4 i arrayets deklarasjon - det indikerer at "du kan lagre 4 verdier i arrayen. "
Tallet 4 betyr ikke at" du kan tilordne en verdi til myArray [4]. "Faktisk, hvis du legger til en uttalelse som myArray [4] =" Ups! "Til koden i oppføringen, får du en stygg feilmelding (ArrayIndexOutOfBoundsException) når du kjører programmet.
Uttalingen String [] myArray = new String [4] lager en tom rekkefølge og gjør myArray-variabelen til den tomme arrayen. Arrayet kan potensielt lagre så mange som fire verdier. Men i begynnelsen refererer den variabelen til en matrise som ikke inneholder noen verdier. Det er ikke før Java kjører den første oppgaveoppgaven (myArray [0] = "Hello") at arrayet inneholder noen verdier.
Du kan enkelt og effektivt finne den 100. verdien lagret i en matrise eller verdien 1 000 000 verdi lagret i en matrise. Ikke dårlig for en dags arbeid. Så, hva er ulempen ved å bruke en matrise? Den største ulempen ved en matrise er at hver matrise har en fast grense på antall verdier det kan holde. Når du lager oppstillingen i noteringen, forbeholder Java plass til så mange som fire strengverdier.
Hvis du senere i programmet bestemmer deg for at du vil lagre et femte element i matrisen, trenger du litt klumpete, ineffektive kode for å gjøre deg til et større utvalg. Du kan også overvurdere størrelsen du trenger for en matrise, som vist i dette eksemplet:
String [] myArray = new String [20000000];
Når du overvurderer, sparer du sannsynligvis mye minneplass.
En annen ubehagelig egenskap i en matrise er vanskeligheten du kan ha ved å sette inn nye verdier. Tenk deg å ha en treboks for hvert år i samlingen din Keiser Konstantin Comics . Serien dateres tilbake til år 307 A. D., da Konstantin ble leder av Romerriket.
Du har bare 1, 700 bokser fordi du mangler omtrent seks år (for det meste fra årene 1150 til 1155). Boksene er ikke nummerert, men de er stablet en ved siden av en annen i en linje som er 200 meter lang. (Linjen er så lenge 55-etasjen i skyskraperen er høy.)
I et garasjesalg i Istanbul finner du en sjelden utgave av Keiser Konstantin Comics fra mars 1152. Etter glede over din Første tegneserie fra år 1152, innser du at du må sette inn en ny boks i bunken mellom årene 1151 og 1153, som innebærer å flytte år 2013-boksen omtrent ti centimeter til venstre, og deretter flytte 2012-boksen i stedet for 2013-boksen, og deretter flytte 2011-boksen i stedet for 2012-boksen. Og så videre.
Livet for den ivrige keiseren Konstantin Comics samleren er ved å bli slitsom! Sette inn en verdi i midten av et stort utvalg er like irriterende.
