Arrayer in Java
โก Smart sammanfattning
Arrayer in Java รคr indexbaserade containrar med fast storlek som lagrar element av en datatyp i sammanhรคngande minne, vilket ger รฅtkomst i konstant tid, inbyggd grรคnskontroll och ett lรคngdfรคlt som gรถr dem till grunden fรถr de flesta standardbibliotekssamlingar.

Vad รคr en Java Array?
A Java array รคr en struktur med fast storlek som lagrar element av en datatyp i sammanhรคngande minne. Varje element nรฅs av ett nollbaserat index, sรฅ det fรถrsta sitter vid 0 och den sista kl. length - 1. Arrayer รคrver frรฅn Object och implementera Serializable och Cloneable, och kan innehรฅlla primitiver eller objektreferenser.
Matriser ersรคtter lรฅnga serier av numrerade variabler. Betrakta sex oberoende heltal:
x0 = 0; x1 = 1; x2 = 2; x3 = 3; x4 = 4; x5 = 5;
Samma sex vรคrden finns i en enda array med lรคngden sex:
x[0] = 0; x[1] = 1; x[2] = 2; x[3] = 3; x[4] = 4; x[5] = 5;
A slinga variabeln kan styra indexet inom parenteser, sรฅ tre rader bearbetar varje element istรคllet fรถr sex kopior:
for (int count = 0; count < 5; count++) { System.out.println(x[count]); }
Typer av Array i Java
Java arrayer finns i tvรฅ former:
- Endimensionell array: en platt lista med element.
- Flerdimensionell array: en array av arrayer, som anvรคnds fรถr rutnรคt och matriser.
Arrayvariabler: Deklarera, konstruera och initiera
Att anvรคnda en array รคr en tre stegs processdeklarera, konstruera med new, och initialisera sedan.
1) Deklarera arrayen
Syntax:
<elementType>[] <arrayName>;
or (den รคldre C-formen, fortfarande giltig):
<elementType> <arrayName>[];
Exempel:
int[] intArray; // canonical form: brackets on the type int intArray2[]; // legacy C-style form, discouraged in new code
2) Konstruera arrayen
Syntax:
arrayName = new dataType[size];
Exempel:
intArray = new int[10]; // defines that intArray will store 10 integer values
Deklaration och tolkning kombinerade:
int[] intArray = new int[10];
3) Initiera arrayen
intArray[0] = 1; // assigns 1 to the first element (index 0) intArray[1] = 2; // assigns 2 to the second element (index 1)
Deklarera och initiera i ett steg med hjรคlp av en arrayliteral:
int[] intArray = {1, 2, 3, 4}; // initialises an integer array of length 4 where the first element is 1, // the second element is 2, and so on.
Fรถrsta arrayprogrammet i Java
Steg 1) Kopiera fรถljande kod till en editor:
class ArrayDemo { public static void main(String args[]) { int array[] = new int[7]; for (int count = 0; count < 7; count++) { array[count] = count + 1; } for (int count = 0; count < 7; count++) { System.out.println("array[" + count + "] = " + array[count]); } // System.out.println("Length of Array = " + array.length); // array[8] = 10; } }
Steg 2) Spara, kompilera och kรถr koden. Observera utdata.
Fรถrvรคntad produktion:
array[0] = 1 array[1] = 2 array[2] = 3 array[3] = 4 array[4] = 5 array[5] = 6 array[6] = 7
Steg 3) If x รคr en arrayreferens, x.length returnerar dess slot count. Avkommentera den fรถrsta kommenterade raden och kรถr om:
Length of Array = 7
Steg 4) Till skillnad frรฅn C, Java bounds-kontrollerar varje arrayรฅtkomst. Avkommentera den andra kommenterade raden och kรถr om:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
Steg 5) JVM-kasten ArrayIndexOutOfBoundsExceptionI C skulle samma รฅtkomst returnera skrรคp frรฅn intilliggande minne istรคllet fรถr att misslyckas.
Java Array: Skicka via referens
Arrayer skickas till metoder via referens. Metoden tar emot en kopia av referensen, sรฅ elementรคndringar som gรถrs inuti metoden รคr synliga fรถr anroparen.
Exempel: arrayer skickas via referens.
Steg 1) Kopiera fรถljande kod till en editor:
class ArrayDemo { public static void passByReference(String a[]) { a[0] = "Changed"; } public static void main(String args[]) { String[] b = {"Apple", "Mango", "Orange"}; System.out.println("Before Function Call " + b[0]); ArrayDemo.passByReference(b); System.out.println("After Function Call " + b[0]); } }
Steg 2) Spara, kompilera och kรถr koden. Observera utdata.
Fรถrvรคntad produktion:
Before Function Call Apple After Function Call Changed
Flerdimensionella arrayer i Java
Flerdimensionella arrayer รคr arrayer av arrayer. Lรคgg till ytterligare en uppsรคttning hakparenteser fรถr varje dimension. Sรฅ hรคr skapar du ett 2D-heltalsrutnรคt med fyra rader och fem kolumner:
int[][] twoD = new int[4][5];
Du behรถver bara justera storleken pรฅ den fรถrsta (vรคnstra) mรฅtten lรคngst fram. De รฅterstรฅende mรฅtten kan tilldelas separat, och varje rad kan ha sin egen lรคngd, vilket gรถr Java 2D-matriser sanna taggiga matriser.
Exempel:
public class Guru99 { public static void main(String[] args) { // Create a 2-dimensional array with 4 rows and 4 columns. int[][] twoD = new int[4][4]; // Assign three elements to it. twoD[0][0] = 1; twoD[1][1] = 2; twoD[3][2] = 3; System.out.print(twoD[0][0] + " "); } }
Fรถrvรคntad produktion:
1
