java array declare
Denna djupgående handledning förklarar olika sätt att förklara, skapa och initiera en ny matris med värden i Java med hjälp av enkla kodexempel:
I vår tidigare handledning diskuterade vi grunderna för matriser i Java tillsammans med de olika begreppen associerade med matriser som vi kommer att lära oss i detalj i denna handledningsserie.
Det första och främsta steget med matriser är att skapa dem. Du måste vara medveten om vilken typ av element och hur många element du ska lagra i matriser. När du har deklarerat en matris kanske du vill initiera dem genom att ange några initialvärden och det finns olika metoder för att göra detta.
Således i denna handledning kommer vi att fokusera på att skapa och initiera matriser innan vi går vidare till andra koncept.
Vad du kommer att lära dig:
- Hur man förklarar en matris i Java?
- Instantiera och initialisera en Java Array
- Initiera och komma åt matriselement
- Vanliga frågor
- Slutsats
- Rekommenderad läsning
Hur man förklarar en matris i Java?
I Java deklareras en endimensionell matris på något av följande sätt:
data_type() array_name; {or} data_type array_name(); {or} data_type ()array_name;
Här anger 'data_type' vilken typ av data arrayen kommer att innehålla. ”Data_type” kan vara en primitiv datatyp eller vilken som helst härledd typ.
Till exempel, en matris myarray av typ heltal förklaras enligt följande:
int () myarray;
ELLER
int () myarray;
ELLER
int myarray ();
Detta innebär att arrayen myarray kommer att innehålla elementen av datatypen int.
Observera att eftersom matriserna i Java tilldelas dynamiskt anger vi inte någon dimension eller storlek på matrisen med deklarationen. Ovanstående deklaration berättar för kompilatorn att det finns en arrayvariabel 'myarray' av typen int som kommer att lagra heltalstypens värden i den.
Kompilatorn känner inte till storleken eller faktiska värden lagrade i en matris. Det kommer först att veta att när vi har initierat arrayen.
Instantiera och initialisera en Java Array
Vi har redan deklarerat en array i föregående avsnitt. Men det här är bara en referens. För att kunna använda den ovan deklarerade arrayvariabeln måste du starta den och sedan ange värden för den. Arrayen instansieras med hjälp av 'new'.
Den allmänna syntaxen för instansering är som följer:
array_name = new data_type (size);
I ovanstående uttalande är array_name namnet på arrayen som instantieras.
data_type=> type of elements the array is going to store size=> the number of elements that will be stored in array
När du använder nytt med arrayen fördelar du faktiskt arrayen med datatypen och antalet element.
Så den ovan deklarerade arrayen myarray kan initieras enligt följande:
myarray = new int(10)
Således skapar en array i Java två steg som visas nedan:
int() myarray; //declaration myarray = new int(10); //instantiation
När matrisen har skapats kan du initiera den med värden enligt följande:
myarray(0) = 1; myarray(1) = 3; ….and so on until all elements are initialized.
Uttrycket i hakparenteserna ovan kallas matrisindex. Arrayets index används för att komma åt det faktiska värdet av elementen, dvs. ovanstående array myarray med 10 int-element kommer att ha index numrerade från 0 till 9. Du kan komma åt elementet i arrayen i en viss position genom att ange index ovan.
Observera att matrisindex alltid börjar från 0. Alternativt kan du också göra initialiseringen med en slinga som vi kommer att se senare.
Du kan också använda matris bokstavligt och initiera matris under själva deklarationen som visas nedan:
int() myarray = {1,3,5,7};
I ovanstående uttalande bestäms arrayens längd av antalet element. Som du kan se finns det inget behov av att använda ”nytt”. Ännu viktigare är att deklarationen, instantiering och initialiseringen av arrayen görs i ett enda uttalande.
Nedan följer ett enkelt programmeringsexempel för att deklarera och initialisera matrisen.
public class Main { public static void main(String() args) { int() myarray; //declaration myarray = new int(5); //instantiation myarray(0) = 10; //initialization System.out.println('myarray(0) = ' + myarray(0)); //accessing and printing array elements System.out.println('myarray(1) = ' + myarray(1)); int () oddArray = {1,3,5,7}; //initialization with array literal System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); } }
Produktion:
Detta program visade en arraydeklaration och dess instantiering samt initialisering. Observera att eftersom vi bara har initierat othvärdet på myarray, det andra värdet myarray (1) som skrivs ut har ett standardvärde, dvs. 0.
Den andra matrisen visar den matriska variabeln. Även om du inte initierar matrisen kommer Java-kompilatorn inte att ge något fel. När matrisen inte initialiseras tilldelar kompilatorn normalt standardvärden till varje element i matrisen enligt datatypen för elementet.
Vi kommer att visa dessa standardvärden med hjälp av följande program.
class Main { public static void main(String() args) { System.out.println('=======Default Values======'); System.out.print('String Array:'); String() array_str = new String(5); //declaration and instantiation for (String str : array_str) //assumes default values System.out.print(str + ' '); System.out.println('
'); System.out.print('Integer array:'); //array only instantiated not initialized int() array_num = new int(5); for (intnum : array_num) System.out.print(num + ' '); System.out.println('
'); System.out.print('Double array:'); //array only instantiated not initialized doublearray_double() = new double(5); for (double dnum : array_double) System.out.print(dnum + ' '); System.out.println('
'); System.out.print('Boolean array:'); //array only instantiated not initialized booleanarray_bool() = new boolean(5); for (booleanbval : array_bool) System.out.print(bval + ' '); System.out.println('
'); } }
Produktion:
I programmet ovan har vi just deklarerat och instantierat dem. Vi har inte initierat dem till några värden. Således, när vi visar innehållet i dessa matriser, beroende på datatypen för matrisen, kommer elementen att ha olika standardvärden.
Som framgår ovan har strängmatrisen standard som ”null”, heltalsvärden är 0 och dubbla värden är standard 0,0. Booleska värden har standardvärdena inställda på falska.
Initiera och komma åt matriselement
# 1) Använda For Loop
Programmet som skrivits ovan använder en matris bokstavlig för initialisering och de andra matriselementen initialiseras separat. Du kan också använda för loop för att initialisera arrayelementen.
Vi har konverterat ovanstående array med hjälp av array literal för att initiera den med hjälp av for loop i programmet nedan.
public class Main { public static void main(String() args) { int() oddArray; //declaration oddArray = new int(5); //instantiation for(int i=0;i<5;i++){ oddArray(i) = i+1; //initialization using for loop } System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); System.out.println('oddArray(4) = ' + oddArray(4)); } }
Produktion:
Här, som du kan se, har vi initierat matrisen med hjälp av för loop. Varje element 'i' i matrisen initialiseras med värde = i + 1. Förutom att använda metoden ovan för att initiera matriser, kan du också använda några av metoderna i 'Arrays' -klassen i paketet 'java.util' för att tillhandahålla initialvärden för arrayen.
Vi kommer att diskutera några av dessa metoder nedan.
# 2) Använda Arrays. Fyll ()
Fyllningsmetoden ('Arrays') kan användas för att initiera matrisen. När du initierar en matris med den här metoden fylls matrisen med samma värden på alla index.
Nedan följer programmeringsexemplet.
import java.util.*; public class Main { public static void main(String() args) { int() oddArray; oddArray = new int(5); //fill the array with value 30 Arrays.fill(oddArray, 30); System.out.println('Array Elements initialised with Arrays.fill:'); for(int i=0;i<5;i++) System.out.println('oddArray(' + i +') = ' + oddArray(i)); } }
Produktion:
I ovanstående program har vi angett 30 som det värde som ska fyllas i matrisen. Utdata visar att alla element i matrisen har värdet 30.
# 3) Använda Arrays.copyOf ()
Med metoden 'copyOf ()' använder vi en källmatris och kopierar sedan dess värden till en ny matris. Du kan ange hur många värden som ska kopieras och sedan har de återstående elementen i matrisen standardvärden.
Kontrollera följande program.
import java.util.*; public class Main { public static void main(String() args) { int evenArray() = { 2,4,6,8,10 }; //copy contents of evenArray to copyof_Array int() copyof_Array = Arrays.copyOf(evenArray,5); System.out.println('Array Elements initialised with Arrays.copyOf:'); //print the array elements for(int i=0;i<5;i++) System.out.println('copyof_Array(' + i +') = ' + copyof_Array(i)); } }
Produktion:
I det här programmet använder vi en källmatris som heter 'evenArray'. Med hjälp av metoden copyOf har vi kopierat alla element i evenArray till den nya matrisen. I utgången visar vi innehållet i den nya matrisen som är samma som evenArray.
Bortsett från ovanstående två metoder diskuterade vi just att det finns fler metoder som metoden setAll () för Arrays class och clone () -metoden för ArrayUtils som kan användas för att initiera arrays. Vi kommer att ta upp dessa metoder senare i denna handledningsserie i respektive ämnen.
Vanliga frågor
F # 1) Kan vi förklara en matris utan storlek?
Svar: Nej. Det är inte möjligt att deklarera en matris utan att ange storleken. Om du alls vill göra det kan du använda ArrayList som är dynamisk till sin natur.
F # 2) Är matrisstorlek fast i Java?
Svar: Ja. Arrayer är statiska i Java och du förklarar en array med en specificerad storlek. När denna storlek har angetts kan du inte ändra den igen.
Fråga # 3) Är det alltid nödvändigt att använda nya medan du initierar matriser?
Svar: Nej. Arrayer kan initieras med hjälp av nya eller genom att tilldela kommaseparerade värden inneslutna i lockiga parenteser.
Så när vi initialiserar en matris med hjälp av Array bokstavligt som visas nedan. Du behöver inte använda nya.
skillnad mellan enhetstestning och integrationstestning
int() myarray = {1,2,3,4,5};
Antalet tillhandahållna element kommer att avgöra storleken på matrisen.
F # 4) Går Java Array i serie?
Svar: Ja. Internt implementerar Array i Java det serieiserbara gränssnittet.
F # 5) Är en Array Primitive datatyp?
Svar: Nej. Faktum är att en matris inte alls är en datatyp. En array är ett containerobjekt som håller elementen i specifika datatyper i angränsande minnesplatser.
Slutsats
Detta sammanfattar skapandet och initialiseringen av matriser i Java. När matriserna har skapats och initierats till vissa värden måste vi skriva ut dem. För att skriva ut arrayelementen måste vi korsa hela arrayen och skriva ut elementen.
Vi kommer att titta på några av metoderna för att skriva ut arrayelement i vår nästa handledning.
Rekommenderad läsning
- Java-gränssnitt och abstrakt klasshandledning med exempel
- Introduktion till Java-programmeringsspråk - Videohandledning
- Java-trådar med metoder och livscykel
- JAVA-handledning för nybörjare: 100+ praktiska Java-videohandledning
- Java Array Length Tutorial With Code Exempel
- C # Array: Hur deklarerar, initialiserar och får tillgång till en array i C #?
- Java Hello World - Skapa ditt första program i Java idag
- Introduktion till Java Arrays och relaterade begrepp