1. En matrise er en beholder med elementer

Du har sikkert hørt at datamaskiner kan behandle enorme mengder informasjon. Selvfølgelig er betingede utsagn ( if-else) og loops ( for, while) til stor hjelp her. Men de kan bare ta deg så langt. Tross alt må dataene du behandler lagres på en eller annen måte.

Som nesten alle programmeringsspråk, letter Java databehandling ved å tilby denne flotte tingen som kalles en array ( Arrayklasse). De kalles også noen ganger tabeller.

En matrise er et spesielt objekt som lar deg lagre ikke én verdi, men flere .

Java-arrayer

Tidligere sammenlignet vi en variabel med en boks (der du kan lagre en hvilken som helst verdi). Ved å fortsette denne analogien kan vi tenke på en matrise som en boks som har interne rom. Hvert rom i "boksen" (array) har et nummer. Selvfølgelig starter nummereringen fra null...

Eller vi kan lage en annen analogi. La oss sammenligne et vanlig hus og en høyblokk. Et vanlig hus er okkupert av en enkelt familie, men en høyblokk er delt inn i leiligheter. Hvis du ønsker å sende et brev til en familie som bor i et vanlig hus, oppgir du den unike adressen til huset. Og for å sende et brev til en familie som bor i en leilighet, oppgir du den unike adressen til bygningen samt leilighetsnummeret.

En matrisevariabel er som en høyhusvariabel. Den kan lagre ikke én, men mange verdier. En slik variabel har flere leiligheter (celler). Hver av dem kan adresseres med sitt nummer (indeks).

For å gjøre dette, etter navnet på variabelen, angir du indeksen til cellen du vil adressere, og pakker inn indeksen i firkantede parenteser. Dette er ganske enkelt:

array[index] = value;

Hvor arrayer navnet på matrisevariabelen, indexer cellenummeret i matrisen, og valueer verdien vi ønsker å sette inn i den angitte cellen.

Men for å starte, la oss finne ut hvordan du lager matriser.


2. Opprette en rekke elementer i Java

Opprette en rekke elementer i Java

La oss si at programmet ditt må lagre 100heltall et sted. En array vil være en god kandidat for dette. Og hvordan lager du en?

Hvis vi ønsket å lagre et enkelt heltall, intville typen passet oss. Men hvis vi vil lagre 100heltall, trenger vi sannsynligvis en rekke s int. Slik vil koden for å lage en se ut:

int[] array = new int[100];

La oss utforske denne uttalelsen.

Som du kanskje har gjettet, til venstre for likhetstegnet har vi deklarasjonen av en variabel kalt arrayhvis type er int[]. Typen intetterfølges av firkantede parenteser, som antyder at "bokser" av denne typen kan lagre ikke én, men flere verdier.

Til høyre for likhetstegnet har vi et eksempel på "objektskaping" (nøkkelordet new) for å få 100elementer (celler) hvis type er int. Ingenting er for vanskelig her.

Tilsvarende, hvis vi ønsket å lage en matrise med 20 celler for å lagre reelle tall, ville koden vår sett omtrent slik ut:

double[] vals = new double[20];

Antall celler i en matrise kalles størrelsen på matrisen eller lengden på matrisen . Og fordi matriser kan lagre mange verdier, kalles de også containere.

Her er et viktig faktum: du kan ikke endre størrelsen på en matrise etter at den er opprettet .

Du kan opprette en ny, men lengden på den eksisterende beholderen kan ikke endres.



3. Arbeide med cellene i en matrise

Arbeide med cellene i en matrise

Ok, vi har lært å lage matriser. Hvordan jobber vi med dem nå?

Vel, på nesten samme måte som med vanlige variabler. Den eneste forskjellen er at etter navnet på matrisevariabelen, må vi angi nummeret på cellen vi jobber med.

Nummereringen av celler i en matrise starter alltid fra null. Hvis vi har en rekke 10elementer, er tallene (indeksene) til cellene 0..9. Hvis matrisen inneholder 200elementer, er indeksene 0..199. Og så videre i analogi.

Eksempler:

Kode Forklaring
int[] a = new int[10];
a[2] = 4;
a[7] = 9;
a[9] = a[2] + a[5];
Lag en rekke 10 intelementer.
Tilordne verdien 4til cellen med indeks 2.
Tilordne verdien 9til cellen med indeks 7.
I cellen med indeks 9skriver du summen av verdiene som er lagret i celler 2(som lagrer verdien 4) og 5(som lagrer verdien 0).

Dette er hva som blir lagret i minnet etter at denne koden er utført:

Arbeide med cellene i en int-matrise 2

Kolonnen til venstre (i grått) representerer celletallene (indeksene). Cellene lagrer de tildelte verdiene: 4, 9og 4. Når matrisen er opprettet, er alle cellene fylt med nuller.

Dette er viktig. Alle celler i en matrise har samme datatype. Hvis vi lager en matrise med Strings, kan bare strenger lagres i cellene. Datatypen til en matrise er spesifisert når den opprettes. Verken datatypen eller lengden på matrisen kan endres senere.