Tömbök be Java

⚡ Okos összefoglaló

Tömbök be Java fix méretű, indexalapú konténerek, amelyek egy adattípus elemeit tárolják összefüggő memóriában, állandó idejű hozzáférést, beépített határellenőrzést és egy hosszmezőt biztosítva, amelyek a legtöbb standard könyvtári gyűjtemény alapját képezik.

  • 📦 Fix méret: Egy tömb egy adott számú, egyetlen típusból álló elemet tartalmaz.
  • 🔢 Nulla alapú index: Az elemek 0-tól mínusz egyig terjedő hosszúságúak.
  • 🧩 Két típus létezik: Java egydimenziós és többdimenziós tömbökkel rendelkezik.
  • 🇧🇷 Három lépés: Minden tömb deklarálva van, felépítve a következővel: new, és inicializálva.
  • 🛡️ Határok ellenőrzése: A JVM dob ArrayIndexOutOfBoundsException az utolsó résen túl.
  • ↩️ Hivatkozásként: A metóduson belül végrehajtott elemmódosítások a hívó számára is megmaradnak.
  • 📏 Hossz mező: Minden tömb ki van téve length a biztonságos iteráció érdekében.

Tömbök be Java

Mi a Java Sor?

A Java sor egy fix méretű struktúra, amely egy adattípusú elemeket tárol összefüggő memóriában. Minden elemet egy nulla alapú index ér el, így az első a következő helyen található: 0 és az utolsót length - 1A tömbök innen öröklődnek: Object és végrehajtani Serializable és a Cloneable, és primitíveket vagy objektumhivatkozásokat tartalmazhat.

A tömbök hosszú, számozott változókból álló sorozatokat helyettesítenek. Tekintsünk hat független egész számot:

x0 = 0;
x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
x5 = 5;

Ugyanaz a hat érték egyetlen, hat hosszú tömbben található:

x[0] = 0;
x[1] = 1;
x[2] = 2;
x[3] = 3;
x[4] = 4;
x[5] = 5;

A hurok változó vezérelheti a zárójelben lévő indexet, így három sor dolgozza fel minden elemet hat másolat helyett:

for (int count = 0; count < 5; count++) {
    System.out.println(x[count]);
}

A tömb típusai Java

Java A tömbök kétféle formában kaphatók:

  1. Egydimenziós tömb: egy lapos elemlista.
  2. Többdimenziós tömb: tömbök tömbje, amelyet rácsokhoz és mátrixokhoz használnak.

Tömbváltozók: deklarálás, konstruálás és inicializálás

Egy tömb használata egy háromlépéses folyamat: deklarál, szerkeszt new, majd inicializálja.

1) Deklarálja a tömböt

Syntax:

<elementType>[] <arrayName>;

or (a régebbi C stílusú forma, továbbra is érvényes):

<elementType> <arrayName>[];

Példa:

int[] intArray;   // canonical form: brackets on the type
int intArray2[];  // legacy C-style form, discouraged in new code

2) A tömb létrehozása

Syntax:

arrayName = new dataType[size];

Példa:

intArray = new int[10]; // defines that intArray will store 10 integer values

Nyilatkozat és konstrukció együttesen:

int[] intArray = new int[10];

3) Inicializálja a tömböt

intArray[0] = 1; // assigns 1 to the first element (index 0)
intArray[1] = 2; // assigns 2 to the second element (index 1)

Deklarálás és inicializálás egy lépésben tömb literál használatával:

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.

Első tömbprogram Java

Step 1) Másold be a következő kódot egy szerkesztőbe:

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;
    }
}

Step 2) Mentsd el, fordítsd le és futtasd a kódot. Figyeld meg a kimenetet.

Várható teljesítmény:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

Step 3) If x egy tömbhivatkozás, x.length visszaadja a slotok számát. Távolítsa el a kommentelt első sort, és futtassa újra:

Length of Array  =  7

Step 4) C-vel ellentétben, Java A határértékek minden tömbhozzáférést ellenőriznek. Töröld ki a második kommentelt sort a megjegyzésből, és futtasd újra:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

Step 5) A JVM dob ArrayIndexOutOfBoundsExceptionC-ben ugyanaz a hozzáférés a szomszédos memóriából szemetet adna vissza a hiba helyett.

Java Tömb: Áthaladás referencia szerint

A tömböket referencia alapján adjuk át a metódusoknak. A metódus megkapja a referencia másolatát, így a metóduson belül végrehajtott elemmódosítások láthatók a hívó számára.

Példa: a tömböket hivatkozással adjuk át.

Step 1) Másold be a következő kódot egy szerkesztőbe:

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]);
    }
}

Step 2) Mentsd el, fordítsd le és futtasd a kódot. Figyeld meg a kimenetet.

Várható teljesítmény:

Before Function Call    Apple
After Function Call    Changed

Többdimenziós tömbök Java

A többdimenziós tömbök tömbök tömbjeinek tömbjei. Minden dimenzióhoz adjon hozzá még egy szögletes zárójelkészletet. Négy soros és öt oszlopos kétdimenziós egész rács létrehozásához:

int[][] twoD = new int[4][5];

Csak az első (bal szélső) méretet kell előre méretezni. A többi méret külön-külön kiosztható, és minden sornak lehet saját hossza, így Java 2D tömbök igazak szaggatott tömbök.

Példa:

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] + " ");
    }
}

Várható teljesítmény:

1

GYIK

A Java A tömb egy fix méretű konténer, amely egy adattípusú elemeket tárol. Minden elemhez egy nulla alapú index tartozik, és minden tömb egy hosszmezőt mutat be a slotok számával.

Deklaráld az int[] arr függvénnyel, konstruáld a new int[size] függvénnyel, majd add meg az értéket index alapján. Ha mindhármat egy sorban szeretnéd végrehajtani, használj literált, például int[] arr = {1, 2, 3, 4}.

Java támogatja az egydimenziós és többdimenziós tömböket. Az egydimenziós tömb egy lapos lista, míg a többdimenziós tömb egy tömbökből álló tömb, amelyet táblázatokhoz, rácsokhoz és mátrixokhoz használnak.

Használd a length mezőt, például arr.length. Visszaadja a slotok számát, és bármilyen tömbtípusnál működik. A Stringgel ellentétben a tömbök a length mezőként jelenítik meg a értéket, nem pedig metódushívásként.

A JVM minden tömbhozzáférést határérték-ellenőrzéssel ellenőriz. Nulla alatti, illetve nulla vagy annál nagyobb hosszúságú index olvasása vagy írása ArrayIndexOutOfBoundsException kivételt eredményez, megakadályozva a C-t és a ... sújtó memóriahibákat. C++.

Java Az argumentumokat érték szerint adja át, de tömbök esetén ez az érték a hivatkozás másolata. A metódus ugyanazon az alapul szolgáló tömbön működik, így a metóduson belüli elemváltozások láthatók a hívó számára.

A gépi tanulást támogató kódasszisztensek felismerik a deklarálás-konstruálás-inicializálás mintát, és literálokat vagy ciklusokat fejeznek be. Jelzik a gyakori, egymás utáni hibákat is, amelyek futásidőben ArrayIndexOutOfBoundsException kivételt eredményeznének.

Igen. A GitHub Copilot egyszerű nyelvi megjegyzésekből tömbdeklarációkat, ciklusokat, Arrays.sort hívásokat és 2D mátrixbejárásokat scaffolgál. RevTekintse meg a generált korlátokat, mielőtt éles adatokon futtatná.

Foglald össze ezt a bejegyzést a következőképpen: