logo

Eri tapoja ilmoittaa ja alustaa 2-D-taulukko Javassa

Moniulotteinen taulukko. Yleisimmin käytetyt moniulotteiset taulukot ovat 2-D ja 3-D-taulukot. Voimme sanoa, että mikä tahansa korkeampiulotteinen taulukko on pohjimmiltaan matriisijoukko. Hyvin yleinen esimerkki 2D-taulukosta on shakkilauta. Shakkilauta on ruudukko, joka sisältää 64 1×1 neliöruutua. Voit myös visualisoida 2D-taulukon. 2D-taulukossa jokainen elementti on liitetty rivinumeroon ja sarakkeen numeroon. 2D-taulukon minkä tahansa elementin käyttäminen on samanlaista kuin Excel-tiedoston tietueen käyttäminen sekä rivi- että sarakenumeron avulla. 2D-taulukot ovat hyödyllisiä toteutettaessa Tic-Tac-Toe-peliä, shakkia tai jopa tallennettaessa kuvapikseleitä.



2-D-taulukon ilmoittaminen Javassa:

Mikä tahansa 2-ulotteinen taulukko voidaan ilmoittaa seuraavasti:

Syntaksi:

tietotyyppi taulukon_nimi[][]; (TAI) tietotyyppi[][] taulukon_nimi;



    data_type: Koska Java on staattisesti kirjoitettu kieli (eli se odottaa, että sen muuttujat ilmoitetaan ennen kuin niille voidaan antaa arvoja). Joten tietotyypin määrittäminen päättää, minkä tyyppiset elementit se hyväksyy. esim. tallentaaksesi vain kokonaislukuarvot, tietotyyppi ilmoitetaan int. taulukon_nimi: Se on nimi, joka annetaan 2-D-taulukolle. esim. aiheet, opiskelijat, hedelmät, osasto jne.

Huomautus: Voimme kirjoittaa [ ][ ] perään data_type tai voimme kirjoittaa [ ][ ] taulukon_nimi perään, kun ilmoitamme 2D-taulukon.

Java






// java program showing declaration of arrays> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> > >int>[][] integer2DArray;>// 2D integer array> >String[][] string2DArray;>// 2D String array> >double>[][] double2DArray;>// 2D double array> >boolean>[][] boolean2DArray;>// 2D boolean array> >float>[][] float2DArray;>// 2D float array> >double>[][] double2DArray;>// 2D double array> >}> }>

>

>

Erilaisia ​​lähestymistapoja 2-D-taulukon alustamiseen Javassa:

data_type[][] taulukon_nimi = Uusi tietotyyppi[rivien_määrä][sarakkeiden_määrä];

Minkä tahansa 2D-taulukon elementtien kokonaismäärä on yhtä suuri kuin (rivien_nro) * (sarakkeiden_määrä).

    no_of_rows: taulukon rivien määrä. esim. no_of_rows = 3, taulukossa on kolme riviä. no_of_columns: taulukon sarakkeiden määrä. esim. no_of_columns = 4, taulukossa on neljä saraketta.

Yllä oleva taulukon alustuksen syntaksi määrittää oletusarvot kaikille taulukon elementeille määritetyn tietotyypin mukaan.
Alla on erilaisten lähestymistapojen toteutus 2D-taulukoiden alustamiseen:

Lähestymistapa 1:

Java




// java program to initialize a 2D array> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Declaration along with initialization> >// 2D integer array with 5 rows and 3 columns> >// integer array elements are initialized with 0> >int>[][] integer2DArray =>new> int>[>5>][>3>];> >System.out.println(> >'Default value of int array element: '> >+ integer2DArray[>0>][>0>]);> > >// 2D String array with 4 rows and 4 columns> >// String array elements are initialized with null> >String[][] string2DArray =>new> String[>4>][>4>];> >System.out.println(> >'Default value of String array element: '> >+ string2DArray[>0>][>0>]);> > >// 2D boolean array with 3 rows and 5 columns> >// boolean array elements are initialized with false> >boolean>[][] boolean2DArray =>new> boolean>[>4>][>4>];> >System.out.println(> >'Default value of boolean array element: '> >+ boolean2DArray[>0>][>0>]);> > >// 2D char array with 10 rows and 10 columns> >// char array elements are initialized with> >// 'u0000'(null character)> >char>[][] char2DArray =>new> char>[>10>][>10>];> >System.out.println(> >'Default value of char array element: '> >+ char2DArray[>0>][>0>]);> > >// First declaration and then initialization> >int>[][] arr;>// declaration> > >// System.out.println('arr[0][0]: '+ arr[0][0]);> >// The above line will throw an error, as we have> >// only declared the 2D array, but not initialized> >// it.> >arr =>new> int>[>5>][>3>];>// initialization> >System.out.println(>'arr[0][0]: '> + arr[>0>][>0>]);> >}> }>

>

>

Huomautus: Kun alustat 2D-taulukon, sinun on aina määritettävä ensimmäinen ulottuvuus (rivien määrä), mutta toisen ulottuvuuden (sarakkeiden lukumäärä) ilmoittaminen voidaan jättää pois.

Alla olevassa koodinpätkässä emme ole määrittäneet sarakkeiden määrää. Java-kääntäjä on kuitenkin tarpeeksi älykäs manipuloimaan kokoa tarkistamalla sarakkeiden sisällä olevien elementtien lukumäärän.

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// The line below will throw an error, as the first> >// dimension(no. of rows) is not specified> >int>[][] arr =>new> int>[][>3>];> > >// The line below will execute without any error, as> >// the first dimension(no. of rows) is specified> >int>[][] arr =>new> int>[>2>][];> >}> }>

>

>

Voit käyttää mitä tahansa 2D-taulukon elementtiä rivi- ja sarakenumeroiden avulla.

Lähestymistapa 2:

Alla olevassa koodinpätkässä emme ole määrittäneet rivien ja sarakkeiden määrää. Java-kääntäjä on kuitenkin tarpeeksi älykäs manipuloimaan kokoa tarkistamalla rivien ja sarakkeiden sisällä olevien elementtien lukumäärän.

Java


smtp Internet-protokolla



import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >String[][] subjects = {> >{>'Data Structures & Algorithms'>,> >'Programming & Logic'>,>'Software Engineering'>,> >'Theory of Computation'> },>// row 1> > >{>'Thermodynamics'>,>'Metallurgy'>,> >'Machine Drawing'>,> >'Fluid Mechanics'> },>// row2> > >{>'Signals and Systems'>,>'Digital Electronics'>,> >'Power Electronics'> }>// row3> >};> > >System.out.println(> >'Fundamental Subject in Computer Engineering: '> >+ subjects[>0>][>0>]);> >System.out.println(> >'Fundamental Subject in Mechanical Engineering: '> >+ subjects[>1>][>3>]);> >System.out.println(> >'Fundamental Subject in Electronics Engineering: '> >+ subjects[>2>][>1>]);> >}> }>

>

>

Lähtö

Fundamental Subject in Computer Engineering: Data Structures & Algorithms Fundamental Subject in Mechanical Engineering: Fluid Mechanics Fundamental Subject in Electronics Engineering: Digital Electronics>

Lähestymistapa 3:

Lisäksi voimme alustaa jokaisen taulukon elementin erikseen. Katso alla oleva koodinpätkä:

Java




import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] scores =>new> int>[>2>][>2>];> >// Initializing array element at position[0][0],> >// i.e. 0th row and 0th column> >scores[>0>][>0>] =>15>;> >// Initializing array element at position[0][1],> >// i.e. 0th row and 1st column> >scores[>0>][>1>] =>23>;> >// Initializing array element at position[1][0],> >// i.e. 1st row and 0th column> >scores[>1>][>0>] =>30>;> >// Initializing array element at position[1][1],> >// i.e. 1st row and 1st column> >scores[>1>][>1>] =>21>;> > >// printing the array elements individually> >System.out.println(>'scores[0][0] = '> >+ scores[>0>][>0>]);> >System.out.println(>'scores[0][1] = '> >+ scores[>0>][>1>]);> >System.out.println(>'scores[1][0] = '> >+ scores[>1>][>0>]);> >System.out.println(>'scores[1][1] = '> >+ scores[>1>][>1>]);> >// printing 2D array using Arrays.deepToString() method> >System.out.println(> >'Printing 2D array using Arrays.deepToString() method: '>);> >System.out.println(Arrays.deepToString(scores));> >}> }>

>

>

Lähtö

scores[0][0] = 15 scores[0][1] = 23 scores[1][0] = 30 scores[1][1] = 21 Printing 2D array using Arrays.deepToString() method: [[15, 23], [30, 21]]>

Lähestymistapa 4

Yllä olevan lähestymistavan käyttäminen taulukon alustamiseen olisi työlästä, jos 2D-taulukon koko on liian suuri. Tehokas tapa on käyttää silmukkaa taulukon elementtien alustamiseen, kun kyseessä on suuri 2D-taulukko.

Java




rj12 vs rj11

import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> rows =>80>, columns =>5>;> >int>[][] marks =>new> int>[rows][columns];> > >// initializing the array elements using for loop> >for> (>int> i =>0>; i for (int j = 0; j marks[i][j] = i + j; } } // printing the first three rows of marks array System.out.println('First three rows are: '); for (int i = 0; i <3; i++) { for (int j = 0; j System.out.printf(marks[i][j] + ' '); } System.out.println(); } } }>

>

>

Lähtö

First three rows are: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6>

Huomautus: Voimme käyttää arr. pituusfunktio määrittää rivien koon (1. ulottuvuus) ja arr[0].length-funktio selvittää sarakkeiden koon (2. ulottuvuus).

Lähestymistapa 5: (sahaiset taulukot)

Saattaa olla tietty tilanne, jossa haluat, että jokaisella rivillä on eri määrä sarakkeita. Tämän tyyppistä taulukkoa kutsutaan Jagged Array - taulukoksi .

Java




import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// declaring a 2D array with 2 rows> >int> jagged[][] =>new> int>[>2>][];> > >// not specifying the 2nd dimension,> >// and making it as jagged array> >// first row has 2 columns> >jagged[>0>] =>new> int>[>2>];> >// second row has 4 columns> >jagged[>1>] =>new> int>[>4>];> >// Initializing the array> >int> count =>0>;> >for> (>int> i =>0>; i // remember to use jagged[i].length instead of // jagged[0].length, since every row has // different number of columns for (int j = 0; j jagged[i][j] = count++; } } // printing the values of 2D Jagged array System.out.println('The values of 2D jagged array'); for (int i = 0; i for (int j = 0; j System.out.printf(jagged[i][j] + ' '); System.out.println(); } } }>

>

>

Lähtö

The values of 2D jagged array 0 1 2 3 4 5>

Ohjelma kahden 2D-taulukon lisäämiseen:

Java




import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int>[][] arr1 = { {>1>,>2>,>3> }, {>4>,>5>,>6> } };> >int>[][] arr2 = { {>4>,>5>,>6> }, {>1>,>3>,>2> } };> >int>[][] sum =>new> int>[>2>][>3>];> > >// adding two 2D arrays element-wise> >for> (>int> i =>0>; i for (int j = 0; j 0].length; j++) { sum[i][j] = arr1[i][j] + arr2[i][j]; } } System.out.println('Resultant 2D array: '); for (int i = 0; i System.out.println(Arrays.toString(sum[i])); } } }>

>

>

Lähtö

Resultant 2D array: [5, 7, 9] [5, 8, 8]>