Anbefalet, 2024

Redaktørens Valg

Forskel mellem One-Dimensional (1D) og Two-Dimensional (2D) Array

Et array er en samling af variabler, der har tilsvarende datatyper og er henvist til af et fælles navn. Et specifikt element i en matrix fås af et bestemt indeks for det pågældende array. Arrays i Java virker forskelligt i forhold til C ++. Hovedemnet i vores diskussion er forskellen mellem One-dimension og Two-Dimension array. Et endimensionelt array er en liste over variabler med samme datatype, mens de to-dimensionelle array er 'array af arrayer', der har lignende datatyper. C ++ har ikke bundet kontrol af arrayer, mens Java har streng bundet kontrol af arrayer.

Så lad os begynde med forskellene mellem One-dimension og Two-Dimension array sammen med en sammenligning diagram.

Sammenligningstabel:

Grundlag for sammenligningOne-DimensionalTodimensionale
Grundlæggende
Gem en enkelt liste over elementer af samme datatype.Gem 'liste over lister' eller 'array af arrays' eller 'array of one-dimensional arrays'.
Erklæring/ * erklæring i C ++
skriv variabelnavn [størrelse]; * /
/ * erklæring i Java
skriv variabelnavn [];
variable_name = ny type [størrelse]; * /
/ * erklæring i C ++
skriv variable_name [size1] [size2]; * /
/ * erklæring i Java
skriv variable_name = new int [size1] [size2]; * /
Alternativ erklæring/ * I Java
int [] a = nyt int [10]; * /
/ * I Java
int [] [] a = ny int [10] [20]; * /
Total størrelse i byteTotal Bytes = sizeof (datatype af array variabel) * størrelsen af ​​array.Total Bytes = sizeof (datatype af array variabel) * størrelse på første indeks * størrelse af andet indeks.
ModtagerparameterDen kan modtages i en peger, en stor matrix eller et usorteret array.Parameter, der modtager det, skal definere den højeste dimension i en matrix.
DimensionerÉdimensionel.To-dimensionelle.

Definition af One-Dimensional Array (1-D array)

Et-dimensionelt eller enkeltdimensionelt array betragtes som "listen over variabler af lignende datatyper", og hver variabel kan tydeligt nås ved at angive sit indeks i firkantede parentes forud for navnet på det pågældende array.

I C ++ er erklæringen af ​​en array-variabel med størrelse nok til at allokere plads til dem i hukommelsen. I Java opnås dette i to trin. For det første skal du erklære en variabel af den ønskede type. For det andet skal du allokere hukommelsen for at holde arrayet ved hjælp af 'nyt' og tildele det til deklarerede array-variabel. Derfor er arrayer dynamisk fordelt i Java.

Lad os diskutere i C ++ kontekst

 // erklæring i C ++ type variable_name [size]; 

Her typen erklærer datatypen for array-variablen, og størrelsen definerer det antal elementer, som array vil holde.

For eksempel, hvis vi ønsker at erklære en matrix, der vil indeholde balancen i hver måned i året.

 // eksempel int måned_balance [12]; 

Måned _balance er array variablen, som vil holde de 12 heltal, som vil repræsentere balancen i hver måned. Nu, hvis vi ønsker at få adgang til balancen i måneden 'april', skulle vi blot nævne det variable navn efterfulgt af firkantet beslag indeholdende indeksværdien for april måned, dvs. 'month_balance [3]'. Men som 'april' er årets fjerde måned, men vi havde nævnt '[3]', fordi alle arrayer har 0 som indekset for deres første element.

I Java kan dette gøres som

 // erklæring i Java-typen variable_name []; variable_name = ny type [størrelse]; 

Her havde vi oprindeligt deklareret en array-variabel med sin type, og så havde vi allokeret hukommelse til den ved hjælp af 'ny' og tildelingen 'ny' til den deklarerede array-variabel. Lad os tage ovenstående eksempel, hvis vi vil erklære en matrix, som vil indeholde balancen i hver måned af året.

 // eksempel int måned_balance []; month_balance = new int [12]; 

Her tildeler "new" hukommelse til array variabel "month_balance", så nu vil mont_balance nu holde hukommelsen til 12 heltalsværdier.

Arrays kan initialiseres, når de erklæres. En array initialiserer er listen over kommaseparerede værdier omgivet af krøllede seler.
//eksempel

 int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 180}; 

Definition af to-dimensionelle array (2-D array)

Både C ++ og Java support multidimensionale array. En af de enkleste former for et multidimensionalt array er et, todimensionelt array eller 2-D array. Et todimensionelt array kan betragtes som "array of arrays" eller "array of one-dimensional arrays". For at deklarere den todimensionelle array-variabel, skal vi angive arraynavnet efterfulgt af to firkantede parentes, hvor det andet indeks er det andet sæt firkantede parenteser.

Et todimensionelt array opbevares i form af rad-kolonne matrixen, hvor det første indeks angiver rækken, og andet indeks angiver søjlen. Det andet eller højre side af en array ændres meget hurtigt i forhold til første eller venstre-indekset, mens du får adgang til elementerne i en matrix.

I C ++ erklæres det todimensionelle array som;

 // erklæring i C ++ type variable_name [size1] [size2]; 

For eksempel ønsker vi at gemme balancen på hver 30 dage i hver måned i året, i et 2-D array.

 // eksempel int måned_balance [12] [30]; 

I Java opnås det todimensionelle array af

 // erklæring i Java type variable_name = new int [size1] [size2]; // eksempel int month_balance = new int [12] [30]; 

Da vi ikke kan passere hele arrayet som en parameter til en funktion, er en pointer til det første element i arrayet bestået. Et argument, der modtager det todimensionelle array, skal definere, at det er den højeste dimension. Den højeste dimension er nødvendig, fordi kompilatoren har brug for det, for at bekræfte længden af ​​hver række, hvis den vil indeksere arrayet korrekt. Hvis det højeste indeks ikke er nævnt, kan kompilatoren ikke bestemme, hvor den næste række starter.

 // eksempel i Java void receivinging_funct (int a [] [10]) {. . . } 

Når hukommelsen tildeles dynamisk til det todimensionelle array i Java, er det venstre indeks angivet, og de resterende dimensioner kan tildeles separat, dvs. alle rækker i arrayet må ikke være af samme størrelse.

 // eksempel i Java int month_balance = new int [12] []; month_balance [0] = new int [31]; month_balance [1] = new int [28]; month_balance [2] = new int [31]; month_balance [3] = new int [30]; month_balance [4] = new int [31]; month_balance [5] = new int [30]; month_balance [6] = new int [31]; month_balance [7] = new int [30]; month_balance [8] = new int [31]; month_balance [9] = new int [30]; month_balance [10] = new int [31]; month_balance [11] = new int [30]; month_balance [12] = new int [31]; 

Men der er ingen fordel ved at gøre det.

Nøgleforskelle mellem en-dimensionel og to-dimensionel array

  1. Det endimensionelle array er en liste, hvis elementer er af lignende datatype. På den anden side er det todimensionelle array en liste, hvis elementer er arrayet af en lignende datatype.
  2. I C ++, når det endimensionelle array modtages af parameteren for en modtagelsesfunktion, er det ikke nødvendigt at nævne størrelsen af ​​arrayet som kompilator forstår at arrayet af typen (nævnt datatype sammen med parameteren) med en vis længde skal modtages. I et todimensionelt array skal det andet eller det højeste indeks angives, da kompilatoren skal vide, hvor en enkelt rad slutning og en ny række starter.
  3. I C ++ lagres det endimensionelle array i et sammenhængende hukommelsessted i den indekserede rækkefølge, medens det todimensionelle array også lagres i den tilstødende hukommelsesplacering, men da der er flere rækker i et todimensionelt array, opbevares en første række efterfølges af en anden og den tredje og så videre.

Bemærk:

Passering af både endimensionelle array såvel som todimensionelle array til en funktion er ens, dvs. begge er kun bestået af navnet på array

 // eksempel passing_funt (name_of_array); 

Konklusion:

I både endimensionale og todimensionelle array spiller indekset en meget vigtig rolle, fordi det er det eneste der specifikt identificerer et element i arrayet. Både endimensionel og todimensionel matrix kan initialiseres på tidspunktet for deres erklæring.

Top