Hvordan du initialiserer en matrise i java

Hvordan du initialiserer en matrise i java
En matrise i Java er en datastruktur som har påfølgende elementer av samme type. Elementene er indeksert, fra null. I Java er en matrise et objekt hentet fra objektklassen. Det er tre måter å lage en matrise på: en matrise kan erklæres (opprettet) uten lengden definert. I dette tilfellet må lengden på matrisen fremdeles defineres. Det kan opprettes en matrise, med lengden definert og automatisk initialiseres med standardverdiene for matrisetypen. En matrise kan opprettes med de praktiske verdiene som er tilordnet matriseelementene. I dette tilfellet er lengden på matrisen indirekte definert av antall praktiske verdier.

Denne artikkelen illustrerer tre måter å initialisere en matrise ved å bruke den primitive typen, strengtypen og brukerdefinert type. Strengtypen og de brukerdefinerte typene er referansetyper. Artikkelen begynner med initialiseringen av matrisen med en primitiv type.

Initialisering av matrise med primitiv type

Char -typen vil bli brukt her. Char betyr karakter. Andre primitive typer gjøres på samme måte. All koden i denne delen foregår i Main () -metoden. Uttalelsen,

char [] arr;

erklærer en matrise uten noen initialverdi og uten antall angitt tegn. Antall tegn for matrisen er lengden på matrisen. Når lengden er bestemt, forblir det slik til slutten av programmet. En annen uttalelse er nødvendig, sammen med denne, for å gi lengde på denne matrisen, som følger:

char [] arr;
arr = ny røye [5];

Nå er matrisens antall tegn (lengde) 5. Noe initialisering har funnet sted med den andre uttalelsen. Dette er imidlertid ikke praktisk initialisering. Det er initialisering med 5 standardverdier for røye. Standardverdien for røye er den tomme karakteren, i.e. ”, Det har ingen plass.

Neste kodesegment tildeler en praktisk verdi (karakter) til hvert av minneplasseringene, av de 5 karaktervariablene i matrisen:

arr [0] = 'f';
arr [1] = 'g';
arr [2] = 'h';
arr [3] = 'i';
arr [4] = 'J';

Dette er en oppgave eller erstatning. Det er ikke initialisering. Initialisering ble gjort med standardverdier. Ovennevnte to erklæringserklæringer kan gjøres i en uttalelse, som følger:

char [] arr = new char [5];

Navnet på matrisen er ARR. Char er det reserverte ordet for Char, som vises på begge sider av oppdragsoperatøren. Ny er en annen operatør. Det oppretter objektet med standardverdier. Den andre firkantede braketten i hele uttalelsen har lengden på matrisen. På dette tidspunktet må hvert element i matrisen fremdeles gis en praktisk verdi. Det er den andre måten å erklære en matrise.

Den tredje måten å erklære en matrise innebærer initialisering med praktiske verdier. Det er i to former, som følger:

char [] arr = 'f', 'g', 'h', 'i', 'j';

eller

char [] arr = new char [] 'f', 'g', 'h', 'i', 'j';

Den første formen har matrisen bokstavelig, som kalles matriseinitialisereren. Det er i seler. Hver karakter er i et enkelt sitat. Array Initializer bestemmer indirekte lengden på matrisen (antall elementer). Det første skjemaet har ikke den nye operatøren. Den andre skjemaet har den nye operatøren. Imidlertid har de andre firkantede parentesene ikke matrisens lengde, ettersom lengden er implisitt i matriseinitialiseringen, kodet ved siden av.

Initialisere rekke strenger

Strengobjektet er et veldig godt eksempel på referansetypen i Java. Det er to typer typer i Java: primitive og referansetyper. De primitive typene er: boolsk, byte, røye, kort, int, lang, dobbel, float. Følgende uttalelse erklærer en rekke strenger uten noen lengde definert og noen initialverdi (det være seg standard eller praktisk).

Streng [] arr;

En annen uttalelse er nødvendig, sammen med denne, for å gi lengde på denne matrisen, som følger:

Streng [] arr;
arr = ny streng [4];

Nå er antallet strenger (referanser) på matrisen 4. Noe initialisering har funnet sted med den andre uttalelsen. Dette er imidlertid ikke praktisk initialisering. Det er initialisering med 4 standardverdier for streng. Standardverdien for streng er null, uten sitater. Følgende kode i Main () -metoden illustrerer dette:

Streng [] arr;
arr = ny streng [4];
for (int i = 0; i<4; i++)
System.ute.print (arr [i]); System.ute.skrive ut(");

System.ute.println ();

Utgangen er:

null null null null

Følgende kodesegment tildeler en praktisk verdi (strengreferanse) til hvert av minneplasseringene, av de 4 strengvariablene i matrisen:

arr [0] = "en";
arr [1] = "to";
arr [2] = "tre";
arr [3] = "fire";

Dette er en oppgave eller erstatning. Det er ikke initialisering. Initialisering ble gjort med standardverdier. Ovennevnte to erklæringserklæringer kan gjøres i en uttalelse, som følger:

Streng [] arr = ny streng [4];

Navnet på matrisen er ARR. En streng er et reservert ord for streng, som vises på begge sider av tildelingsoperatøren. Ny er en annen operatør. Det oppretter objektoppstillingen med standardverdier. I hele uttalelsen har den andre firkantede braketten lengden på matrisen. På dette tidspunktet må hvert element i matrisen fremdeles gis en praktisk verdi. Det var den andre måten å erklære en matrise.

Den tredje måten å erklære en matrise innebærer initialisering med praktiske verdier. Det er i to former, som følger:

String [] arr = "One", "Two", "Three", "Four";

eller

String [] arr = new String [] "One", "Two", "Three", "Four";

Den første formen har matrisen bokstavelig, som kalles matriseinitialisereren. Det er i seler. Hver karakter er i et enkelt sitat. Array Initializer bestemmer indirekte lengden på matrisen (antall elementer). Det første skjemaet har ikke den nye operatøren. Den andre skjemaet har den nye operatøren. Imidlertid har den andre firkantede braketten ikke lengden på matrisen, ettersom lengden er implisitt i matriseinitialiseringen, kodet ved siden av.

Merk: For å bruke strengen eller matrisen i Java, må verken String -klassen eller matrise -klassen importeres.

Brukerdefinerte objekter

Følgende er et eksempel på en brukerdefinert klasse:

klasse aclass
int prop;
int mthd ()
Returnerer;

Aclass er navnet på klassen som gjenstandene vil bli opprettet.

I hovedfunksjonen () kan følgende kodesegmenter brukes:

Aclass obj1 = new aclass ();
obj1.prop = 1;
int ret1 = obj1.mthd ();
System.ute.println (ret1);
Aclass obj2 = new aclass ();
obj2.prop = 2;
int ret2 = obj2.mthd ();
System.ute.println (ret2);
Aclass obj3 = new aclass ();
obj3.prop = 3;
int ret3 = obj3.mthd ();
System.ute.println (ret3);

Hvert kodesegment oppretter et objekt av type, ACLASS. Hver er et brukerdefinert objekt. Hvert kodesegment tildeler et heltall til eiendommen (feltet) til hvert objekt. Det er tre forskjellige objekter i samme klasse. Hvert kodesegment kaller metoden for objektet. Utgangen for de tre kodesegmentene skal være: 1 2 3, med hvert nummer i en egen linje.

Erklæringen om en rekke en brukerdefinert klassetype gjøres på samme måte som i de ovennevnte tilfeller. For eksempel,

Aclass [] arr = new aclass [3];

erklærer en rekke tre objekter av type, ACLASS. Denne uttalelsen opprettet en matrise som er initialisert med standardtypen. For enhver referansetype, inkludert strengtypen, er standardverdien null. Dette betyr at det er tre verdier av null i matrisen, nå, nå. Følgende kode i Main () skulle bevise dette:

Aclass [] arr = new aclass [3];
for (int i = 0; i<3; i++)
System.ute.print (arr [i]); System.ute.skrive ut(");

System.ute.println ();

Utgangen er:

NULL NULL NULL

Følgende uttalelse initialiserer matrisen med praktiske objekter av ACLASS -typen:

Aclass [] arr = obj1, obj2, obj3;
Denne uttalelsen er veldig riktig. Dessverre skriver følgende kodesegment, ut koder, i stedet for OBJ1, OBJ2 og OBJ3:
Aclass [] arr = obj1, obj2, obj3;
for (int i = 0; i<3; i++)
System.ute.print (arr [i]); System.ute.skrive ut(");

System.ute.println ();

Utgangen er:

Aclass@6ff3c5b5 aclass@3764951d aclass@4b1210ee

tre forskjellige koder. Årsaken til dette er at matrisen forventer objektlitteraler, men objektreferanser er gitt.

I prosedyren ovenfor ble objektnavnene, OBJ1, OBJ2 og OBJ3, opprettet (instantiert) før du skrev dem inn i matrisen. For å jobbe rundt dette problemet, instantier objektene som matriseelementer, uten navn, som følger:

Aclass [] arr = new aclass (), new aclass (), new aclass ();

Herfra, i stedet for å bruke objektnavnene, OBJ1, OBJ2 OBJ3 for å få tilgang til egenskapene og metodene, bruk arrayindeksene som følger:

arr [0].Prop og ARR [0].mthd (); arr [1].Prop og ARR [1].mthd (); arr [2].Prop og ARR [2].mthd ();

Løser problemet. Og så kan de tre kodesegmentene ovenfor skrives om som:

Aclass [] arr = new aclass (), new aclass (), new aclass ();
arr [0].prop = 1;
int ret1 = arr [0].mthd ();
System.ute.println (ret1);
arr [1].prop = 2;
int ret2 = arr [1].mthd ();
System.ute.println (ret2);
arr [2].prop = 3;
int ret3 = arr [2].mthd ();
System.ute.println (ret3);

Og den endelige produksjonen forventet, er som før, det vil si: 1 2 3, med hvert nummer i sin egen linje.

Konklusjon

Det er to typer typer i Java: primitive typer og referansetyper. En matrise kan deklareres uten noen elementverdi og lengde. En matrise kan deklareres med sin lengde, men initialiseres til standardverdiene av kompilatoren. En matrise kan deklareres, initialiseres med de praktiske verdiene. Hvis verdiene er referanser, og bokstavene ikke kan brukes som verdier, bør arrayverdiene være oppstart av klassen.