Introduksjon til 3D Arrays i Java
Før vi forstår 3D-matriser i Java, bør vi vite hva matrisen er, og hvorfor brukes den på programmeringsspråk? Arrays er i utgangspunktet en gruppe av lignende type verdier som blir referert med samme navn. Med lignende type mener vi verdiene til den samme datatypen. Tenk på en situasjon der vi vil lagre navnene til alle elevene i en klasse. Siden navnet på Student er av strengdatatype, men det ville være feil å lagre navnet på hver student i en annen variabel, da det ikke bare vil oppta mye plass, men også skaper forvirring i et program ved å øke nesten det samme linjer med kode. Så for å håndtere denne typen situasjoner brukes Arrays. Programmereren kan opprette en rekke studentnavn og spesifisere størrelsen på den på tidspunktet for oppretting av arrayobjekt. På denne måten ville det ikke være behov for å spesifisere variabelnavnet til hvert elevnavn, og når vi ønsker å oppdatere, sette inn og hente verdiene, kan indekser for denne matrisen brukes.
I Java deklareres en matrisevariabel som den andre variablene med () -tegnet etter datatypen. Arraystørrelse må defineres på tidspunktet for oppretting av matrise, og den forblir konstant. Arrayelementer får tilgang til ved de numeriske indeksene med det første elementet lagret som 0 indekser. Det er i utgangspunktet to typer matriser i Java, det vil si endimensjonale og flerdimensjonale matriser. 3D-matriser faller inn under kategorien flerdimensjonale matriser. Flerdimensjonale matriser i enkle ord kan defineres som en matrise av matriser, og 3D-matriser er en matrise med 2D-matriser. 3D er en kompleks form for flerdimensjonale matriser. Vurder et scenario med leiligheter i en bygning. Anta at det er 10 etasjer i leiligheten, og hver etasje har 5 leiligheter og hver leilighet har 3 rom. For å håndtere disse dataene i programmering brukes 3D-matriser.
Hvordan 3D Arrays er definert i Java?
Java bruker en veldig enkel måte å definere matriser. Firkantede parenteser ('()') brukes til å definere arrayobjektet etter datatypen for matrisen. Man må definere størrelsen på tidspunktet for erklæringen av matrisen. 3D-matriser er definert med tre parenteser. Nedenfor er syntaks for å definere 3D-matriser i Java:
Data_type array_name( ) ( ) ( ) = new array_name(a)(b)(c);
- Her data_type: datatype av elementer som vil bli lagret i matrisen. array_name: navn på matrisen
- nytt: nøkkelord for å opprette et objekt i Java
- a, b, c: inneholder de numeriske verdiene for de forskjellige dimensjonene.
syntaks:
int ( ) ( ) ( ) arr = new int (10)(4)(3);
I eksemplet ovenfor kan det være maksimalt 10x4x3 = 120 elementer lagret av matrisen 'arr'.
Hvordan lage 3D-matriser og sette inn verdier i dem i Java?
Å lage 3D-matriser i Java er like enkelt som å lage 1D- og 2D-matriser. Som nevnt ovenfor, er det viktig å definere størrelsen på en matrise på erklæringstidspunktet. Å lage 3D-matriser innebærer et trinn til å passere / legge inn verdier i dem i form av en matrise med 2D-matriser. Vi kan definere størrelsen på en matrise og kan sette inn / legge inn verdiene etterpå, eller vi kan direkte sende verdiene i en matrise. Så måten for verdi definert i 3D-matriser er gitt nedenfor:
syntax
data_type()()() arr_name =
(
(
(Array1Row1Col1, Array1Row1Col2, ….),
(Array1Row2Col1, Array1Row2Col2, ….)
),
(
(Array2Row1Col1, Array2Row1Col2, ….),
(Array2Row2Col1, Array2Row2Col2, ….)
)
)
Kode
int num_array ( ) ( ) ( ) = (
(
(10, 20, 99),
(30, 40, 88)
),
(
(50, 60, 77),
(80, 70, 66)
),
);
Arrays er inne i en matrise, og derfor kalles det en matrise med 2D-matriser. I eksemplet over, hvis vi ser det tydelig, er det to 2D-matriser med tall og denne 2D.
Hvordan initialisere elementer av 3D-matriser i Java?
Som nevnt ovenfor, initialisering av hele matrisen på en gang er en god praksis når du arbeider med 3D-matriser, da det reduserer sjansen for forvirring for fremtidig programmering. Selv om vi også kan tilordne en verdi av gangen i en matrise som kan gjøres på den måten som er nevnt nedenfor:
syntaks:
int employee_arr( ) ( ) ( ) = new int (10)(3)(3);
employee_arr(0)(0)(0) = 100; // it will assign value 100 at very first element of employee_arr employee_arr(0)(0)(1) = 200; // it will assign value 200 at second element of employee_arr employee_arr(0)(0)(2) = 300; // it will assign value 100 at third element of employee_arr
Ovennevnte tilnærming er slitsom og anses ikke for å være en god tilnærming da den opptar mye plass og øker kodelinjene. Det er også en tilnærming ved å bruke løkkene som anses for å være god praksis når du arbeider med 3D-matriser.
syntaks:
int Student_arr ( ) ( ) ( ) = new arr (2) (3) (4); int x, y, z, value;
for(x = 0; x< 2; x++) (
for(y = 0; y< 3; y++) (
for(z = 0; z< 4; z++) (
Student_arr(x)(y)(z) = value; value= value*2;
)
)
)
I eksemplet over blir alle matriseelementene satt inn ved hjelp av løkkene der x = nei. av tabeller, y = totalt antall rader og z angir det totale antallet kolonner i en 3D-matrise som heter Student_arr.
Hvordan få tilgang til elementer av 3D-matriser i Java?
I Java kan vi imidlertid få tilgang til det enkelte elementet i matrisen ved å bruke indeksene, slik vi har initialisert dem med indekser som ligner det som er gitt nedenfor:
syntaks:
int arr ( ) ( ) ( ) = new arr (3) (3) (3);
// Accessing the array elements of 3D arrays in Java using indices
syntaks:
System.out.println(“The first element of array is” + arr(0)(0)(0));
I syntaksen ovenfor vil den hente elementet ved (0) (0) (0) indeks for matrisen 'arr', men normalt hvis vi ønsker å hente alle elementene i en matrise, følges ikke denne tilnærmingen og elementene er nås gjennom løkker når den henter inn alle elementer samtidig. Når du får tilgang til elementer gjennom løkker, brukes 3 løkker der den første sløyfen definerer det totale antall bord og den andre sløyfen definerer radene og den tredje sløyfen definerer kolonnene som gitt nedenfor:
Kode:
class Student(
public static void main(String() args) (
// student_arr is the name of 3d array int()()() student_arr= (
(
(10, 20, 30),
(20, 30, 40)
),
(
(40, 50, 60),
(10, 70, 80),
)
);
// for loop to iterate through each element of 3D array for (tables = 0; tables<2; tables++)
(
for (rows= 0; rows <2; rows++)
(
for (columns= 0; columns<3; columns++)
(
System.out.print("student_arr(" +tables+ ")(" +rows+ ")(" +columns+ ") = "
+student_arr(tables)(rows)(columns)+ "\t");
)
System.out.println();
)
System.out.println();
)
)
Produksjon:
student_arr (0) (0) (0) = 10 | student_arr (0) (0) (1) = 20 | student_arr (0) (0) (2) = 30 |
student_arr (0) (1) (0) = 20 | student_arr (0) (1) (1) = 30 | student_arr (0) (1) (2) = 40 |
student_arr (1) (0) (0) = 40 | student_arr (1) (0) (1) = 50 | student_arr (1) (0) (2) = 60 |
student_arr (1) (1) (0) = 10 | student_arr (1) (1) (1) = 70 | student_arr (1) (1) (2) = 80 |
Hvordan fjerne elementer av 3D-matriser i Java?
- Å fjerne elementer i 3D-matriser i Java er enkelt og ligner på det som initialiserer dem. Array-klassen gir ingen direkte metode for å legge til eller slette et element fra matriser. Siden størrelsen på matrisen ikke kan økes eller reduseres dynamisk, så blir enkel programmeringslogikk brukt for å utføre denne oppgaven. Vi kan bare bruke 3 løkker til å krysse hele matrisen ved å spesifisere indeksen som vi vil fjerne elementet fra. Vi kan opprette en ny matrise eller kopiere den opprinnelige arrayen og etterlate elementet som må fjernes.
- Gjennom denne prosessen med å fjerne og oppdatere elementer i 3D-matrisen brukes sjelden. I stedet brukes ArrayList i denne typen saker ettersom den gir forskjellige funksjoner for å fjerne elementer direkte fra den. I ArrayList brukes 'remove (') -metoden for å fjerne elementer ved den oppgitte indeksen i en ArrayList. Hvis vi har gjentatte verdier i en matrise og vi vil fjerne den første forekomsten i Arrayen vi kan bruke, ArrayUtils.removeElement (array, element) -metoden for det samme som tar 2 argumenter, dvs. hele matrisen og elementet som trenger å fjernes fra den.
Slik oppdaterer du elementer
Det er som sådan ingen metode for å oppdatere elementer i en 3D-matrise. Noe programmeringslogikk brukes for å modifisere elementene som å fjerne elementene ved å krysse hele matrisen ved bruk av 3 løkker og utføre modifiseringen enten ved den bestemte indeksen eller i hele matrisen. For en så kompleks oppgave foretrekkes ikke denne behandlingen gjennom 3D-matriser og gjøres gjennom bruk av samlingen, ArrayList. I ArrayList-sett (int-indeks, E-element) brukes til å endre eller oppdatere elementet dynamisk i en matrise. Det tar to argumenter, dvs. indeksen og elementet med den endrede og oppdaterte verdien.
Konklusjon
Som vi nevnte ovenfor hvordan du jobber med 3D-matriser i Java. Å jobbe med flerdimensjonale matriser i Java er noe vanskelig for de nye programmererne, ettersom det innebærer forskjellige løkker, men å forstå det gjennom trinnvise prosedyre og huske på de grunnleggende reglene mens du arbeider med matriser, kan gjøre det mye lettere å jobbe med det.
Anbefalte artikler
Dette er en guide til 3D Arrays i Java. Her diskuterer vi hvordan du oppretter matriser, hvordan sette inn en verdi, hvordan du får tilgang til, fjerner og oppdaterer. Du kan også gå gjennom andre relaterte artikler for å lære mer-
- 3D Arrays i C.
- 3d Arrays i Python
- Arrays i R
- Fordeler med array
- Flerdimensjonal matrise i Python
- Arrays i PHP
- Hvordan arrays og lister fungerer i Python?
- Flerdimensjonale matriser i C ++ med eksempler