Arrays i Java
โก Smart opsummering
Arrays i Java er indeksbaserede containere med fast stรธrrelse, der lagrer elementer af รฉn datatype i sammenhรฆngende hukommelse, hvilket giver adgang i konstant tid, indbygget grรฆnsekontrol og et lรฆngdefelt, der gรธr dem til fundamentet for de fleste standardbibliotekssamlinger.

Hvad er en Java Array?
A Java matrix er en struktur med fast stรธrrelse, der lagrer elementer af รฉn datatype i sammenhรฆngende hukommelse. Hvert element nรฅs af et nulbaseret indeks, sรฅ det fรธrste sidder ved 0 og den sidste kl. length - 1Arrays arver fra Object og implementere Serializable og Cloneable, og kan indeholde primitiver eller objektreferencer.
Arrays erstatter lange serier af nummererede variabler. Betragt seks uafhรฆngige heltal:
x0 = 0; x1 = 1; x2 = 2; x3 = 3; x4 = 4; x5 = 5;
De samme seks vรฆrdier findes i et enkelt array med lรฆngden seks:
x[0] = 0; x[1] = 1; x[2] = 2; x[3] = 3; x[4] = 4; x[5] = 5;
A loop Variablen kan styre indekset i parentes, sรฅ tre linjer behandler hvert element i stedet for seks kopier:
for (int count = 0; count < 5; count++) { System.out.println(x[count]); }
Typer af Array i Java
Java Arrays findes i to former:
- Endimensionelt array: en flad liste af elementer.
- Flerdimensionelt array: et array af arrays, der bruges til gitre og matricer.
Arrayvariabler: Deklarer, konstruer og initialiser
Brug af et array er en tretrins proceserklรฆre, konstruere med new, og initialiser derefter.
1) Deklarer arrayet
Syntaks:
<elementType>[] <arrayName>;
or (den รฆldre C-formular, stadig gyldig):
<elementType> <arrayName>[];
Eksempel:
int[] intArray; // canonical form: brackets on the type int intArray2[]; // legacy C-style form, discouraged in new code
2) Konstruer arrayet
Syntaks:
arrayName = new dataType[size];
Eksempel:
intArray = new int[10]; // defines that intArray will store 10 integer values
Erklรฆring og fortolkning kombineret:
int[] intArray = new int[10];
3) Initialiser arrayet
intArray[0] = 1; // assigns 1 to the first element (index 0) intArray[1] = 2; // assigns 2 to the second element (index 1)
Deklarer og initialiser i รฉt trin ved hjรฆlp af en array-literal:
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รธrste array-program i Java
Trin 1) Kopier fรธlgende kode ind i 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; } }
Trin 2) Gem, kompiler og kรธr koden. Observer outputtet.
Forventet output:
array[0] = 1 array[1] = 2 array[2] = 3 array[3] = 4 array[4] = 5 array[5] = 6 array[6] = 7
Trin 3) If x er en array-reference, x.length returnerer dens slot count. Fjern kommentaren fra den fรธrste kommenterede linje og kรธr igen:
Length of Array = 7
Trin 4) I modsรฆtning til C, Java bounds-tjekker hver array-adgang. Fjern kommentaren fra den anden kommenterede linje og kรธr igen:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
Trin 5) JVM'en kaster ArrayIndexOutOfBoundsExceptionI C ville den samme adgang returnere affald fra tilstรธdende hukommelse i stedet for at fejle.
Java Array: Videregiv reference
Arrays sendes til metoder via reference. Metoden modtager en kopi af referencen, sรฅ elementรฆndringer foretaget i metoden er synlige for den, der kalder.
Eksempel: arrays sendes via reference.
Trin 1) Kopier fรธlgende kode ind i 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]); } }
Trin 2) Gem, kompiler og kรธr koden. Observer outputtet.
Forventet output:
Before Function Call Apple After Function Call Changed
Flerdimensionelle arrays i Java
Flerdimensionelle arrays er arrays af arrays. Tilfรธj et ekstra sรฆt firkantede parenteser for hver dimension. Sรฅdan opretter du et 2D-heltalgitter med fire rรฆkker og fem kolonner:
int[][] twoD = new int[4][5];
Du behรธver kun at justere stรธrrelsen pรฅ den fรธrste (venstre) dimension forrest. De resterende dimensioner kan tildeles separat, og hver rรฆkke kan have sin egen lรฆngde, hvilket gรธr det muligt Java 2D-arrays sande takkede arrays.
Eksempel:
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] + " "); } }
Forventet output:
1
