Arbeide med matriser i Java
Hvordan initialisere, fylle ut, få tilgang til og kopiere en matrise i Java
vgajic/Getty Images
Hvis et program trenger å jobbe med flere verdier av det sammevariabelfor hvert tall. For eksempel et program som viser lotterinummer:
|_+_||_+_| |_+_| |_+_| |_+_| |_+_|En mer elegant måte å håndtere verdier som kan grupperes sammen er å bruke en matrise. En matrise er en beholder som inneholder et fast antall verdier av en datatype. I eksemplet ovenfor kan lotteri-numrene grupperes sammen i en int-matrise:
|_+_|
Tenk på en matrise som en rad med bokser. Antall bokser i matrisen kan ikke endres. Hver boks kan inneholde en verdi så lenge den er av samme datatype som verdiene i de andre boksene. Du kan se inne i en boks for å se hvilken verdi den inneholder eller erstatte innholdet i boksen med en annen verdi. Når man snakker om arrays, kalles boksene elementer.
Deklarere og initialisere en matrise
Deklarasjonssetningen for en matrise er lik den som ble brukt til erklære enhver annen variabel . Den inneholder datatypen etterfulgt av navnet på matrisen - den eneste forskjellen er inkluderingen av firkantede parenteser ved siden av datatypen:
|_+_||_+_| |_+_|
De erklæringer ovenfor fortell kompilatoren det
|_+_|variabel er en matrise av |_+_|, |_+_|er en matrise av |_+_|og |_+_|Tallet innenfor parentes definerer hvor mange elementer matrisen inneholder. Oppgavesetningen ovenfor oppretter en int-matrise med ti elementer. Selvfølgelig er det ingen grunn til at erklæringen og tildelingen ikke kan skje i én erklæring:
|_+_|Matriser er ikke begrenset til primitive datatyper. Matriser av objekter kan opprettes:
|_+_|Bruke en Array
Når en matrise er initialisert, kan elementene ha verdier tilordnet dem ved å bruke matrisens indeks. Indeksen definerer posisjonen til hvert element i matrisen. Det første elementet er på 0, det andre elementet på 1 og så videre. Det er viktig å merke seg at indeksen til det første elementet er 0. Det er lett å tenke at fordi en matrise har ti elementer, er indeksen fra 1 til 10 i stedet for fra 0 til 9. Hvis vi for eksempel går tilbake til lotteriet Eksempel på tall vi kan lage en matrise som inneholder 6 elementer og tilordne lotterinummerene til elementene:
|_+_||_+_| |_+_| |_+_| |_+_| |_+_| |_+_|
Det er en snarvei til å fylle elementer i en matrise ved å sette verdiene for elementene i deklarasjonssetningen:
|_+_||_+_|Verdiene for hvert element er plassert innenfor et par krøllete parenteser. Rekkefølgen på verdiene avgjør hvilket element som tildeles verdien som starter med indeksposisjon 0. Antall elementer i matrisen bestemmes av antall verdier innenfor de krøllede parentesene.
For å få verdien av et element brukes indeksen:
|_+_|For å finne ut hvor mange elementer en matrise har, bruk lengdefeltet:
|_+_|
Merk: En vanlig feil ved bruk av lengdemetoden er å glemme er å bruke lengdeverdien som en indeksposisjon. Dette vil alltid resultere i en feil ettersom indeksposisjonene til en matrise er 0 til lengde - 1.
Flerdimensjonale matriser
Arrayene vi har sett på så langt er kjent som endimensjonale (eller enkeltdimensjonale) arrays. Dette betyr at de bare har én rad med elementer. Matriser kan imidlertid ha mer enn én dimensjon. En flerdimensjonal er faktisk en matrise som inneholder matriser:
|_+_|
Indeksen for en flerdimensjonal matrise består av to tall:
|_+_|Selv om lengden på matrisene inneholdt i en flerdimensjonal matrise ikke trenger å være like lang:
|_+_|Kopiere en matrise
For å kopiere en matrise er den enkleste måten å bruke
|_+_|metoden til System-klassen. Metoden |_+_| kan brukes til å kopiere alle elementene i en matrise eller en underseksjon av dem. Det er fem parametere som sendes til |_+_|For eksempel, for å lage en ny matrise som inneholder de fire siste elementene i en
|_+_||_+_| |_+_|Siden matriser har en fast lengde
arraycopyFor å øke kunnskapen din om arrays kan du lære om manipulering av arrays ved å bruke Arrays-klassen og lage dynamiske arrays (dvs. arrays når antallet elementer ikke er et fast antall) ved å bruke ArrayList klasse .