En forelesningsbit med en mentor som en del av Codegym University-kurset. Meld deg på hele kurset.


"Hei, Amigo!"

"Hei, Ellie!"

"I dag skal jeg fortelle deg om en ny og interessant enhet: matriser. En matrise er en datatype som kan lagre flere verdier i stedet for bare én."

Matriser - 1

"La oss starte med en analogi. La oss sammenligne et hus og en bygård. Et vanlig hus er vanligvis okkupert av bare én familie, men en bygård er delt inn i mange leiligheter. For å sende et brev til en familie som bor i et hus, må du må angi den unike adressen til huset. For å sende et brev til en familie som bor i en bygård, må du skrive bygårdens unike adresse og leilighetsnummeret."

"Alt virker klart så langt."

"En matrisevariabel er som en boligbyggvariabel. Du kan lagre mange verdier i den i stedet for bare én. En slik variabel har flere leiligheter (elementer) som du kan referere til ved hjelp av et leilighetsnummer (indeks). For å gjøre dette, angi indeksen til matriseelementet du vil ha tilgang til i hakeparenteser etter navnet på matrisevariabelen. Det er ganske enkelt."

"Jeg håper det, Ellie."

"En leilighetsbyggvariabel (arrayvariabel) kan inneholde elementer av hvilken som helst type. Du trenger bare å skrive ' TypeName[] variable_name ' i stedet for ' TypeName variable_name '."

Her er noen eksempler:

Kode Beskrivelse
String[] list = new String[5];
Lag en Stringmatrise med 5elementer
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
Fem null -verdier vises.

For å få tilgang til verdien til et bestemt matriseelement, bruk firkantede parenteser og elementets indeks.

int listCount = list.length;
listCountvil bli tildelt verdien 5, som er antall elementer i matrisen list. lagrer matrisens lengde (antall elementer).
list.length
list[1] = "Mom";
String s = list[1];
Når du tilordner objekter til matriseelementer, må du angi elementindeksen i hakeparenteser.
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
Vis verdiene til alle matriseelementer på skjermen.

"Hvor interessant!"

"En matrisevariabel krever ekstra initialisering."

— ?

"Med en vanlig variabel kan du bare deklarere den og deretter tilordne forskjellige verdier til den. Med en matrise er det litt mer komplisert."

"Du må først lage en beholder som vil inneholde N elementer, og først da kan du begynne å plassere verdier i beholderen."

Kode Beskrivelse
String[] list = null;
Matrisevariabelen lister null . Den kan bare lagre en referanse til en beholder for elementer. Du må opprette beholderen separat.
String[] list = new String[5];
Lag en beholder for 5elementer og tilordne en referanse til listvariabelen. Denne beholderen har 5 leiligheter (elementer) nummerert 0, 1, 2, 3 og 4.
String[] list = new String[1];
Opprett en beholder for 1element og tilordne en referanse til listvariabelen. For å legge noe i denne beholderen, ville vi skrive noe sånt somlist[0] = "Yo!";
String[] list = new String[0];
Lag en beholder for 0elementer og tilordne en referanse til listvariabelen. Du kan ikke lagre noe i denne beholderen.

"Jeg skjønner. Nå blir det klarere."

"Her er noen grunnleggende fakta om arrays:"

1) En matrise består av mange elementer.

2) For å få tilgang til et bestemt element, angir du dets nummer (indeks).

3) Alle elementer er av samme type.

4) Startverdien for alle elementer er null; for matriser av primitive typer er startverdien 0, 0,0 (for brøktall) eller usann (for booleaner). Det er nøyaktig det samme som med uinitialiserte variabler som ikke er i matriser.

5) String[] liste erklærer ganske enkelt en variabel. Du må først lage en matrise (beholder), legge noe inn i den, og først deretter bruke den (se eksempelet nedenfor).

6) Når vi lager et array (container) objekt, må vi angi lengden, eller antall elementer. Vi gjør dette ved å bruke nytt Typenavn[n];

Matriser - 2

Her er noen eksempler:

Kode Beskrivelse
String s;
String[] list;
slik null
lister lik null
list = new String[10];
int n = list.length;
Variabelen listlagrer en referanse til et objekt – en 10-elements rekke med strenger
n er lik 10
list = new String[0];
listInneholder nå en 0elementarray. Matrisen eksisterer, men den kan ikke lagre strenger.
list = null;
System.out.println(list[1]);
Dette vil gi et unntak (runtime error) og programmet vil bli unormalt avsluttet: listinneholder en nullreferanse.
list = new String[10];
System.out.println(list[11]);
Dette vil gi et unntak (runtime error): array index out of bounds.

Hvis listden inneholder 10 elementer, er de gyldige indeksene: 0,1,2,3,4,5,6,7,8 og 9 (for totalt 10 indekser).