Mi a dinamikus tömb a Java-ban?



A Java dinamikus tömbje egy tömbtípus, amely hatalmas javulást jelent az automatikus átméretezéshez. A tömbök egyetlen korlátozása, hogy rögzített méretű.

Tömbök homogén adatstruktúrák, amelyeket a Java objektumként valósít meg. A tömbök egy vagy több értéket tárolnak egy adott adattípusból, és indexelt hozzáférést biztosítanak azok tárolásához. A tömb adott eleméhez az indexe fér hozzá. Ebben a cikkben a Java dinamikus tömbjét tárgyaljuk a következő sorrendben:

ha utasítások sql lekérdezésekben

Bevezetés a Java dinamikus tömbjébe

A dinamikus tömb egy ilyen típusú tömb, hatalmas fejlesztéssel az automatikus átméretezéshez. A tömbök egyetlen korlátozása, hogy rögzített méretű. Ez azt jelenti, hogy csak azt az elemek számát adhatja meg, amelyeket a tömb idő előtt megtarthat. Másrészt a dinamikus tömbök kibővülhetnek, mivel több elemet adunk hozzá valós időben. Ezért a kódolónak nem kell idő előtt meghatároznia a tömb méretét. Van még néhány erőssége is:





  • Gyors keresés . Ugyanúgy, mint a tömböknél, amikor az elemet egy adott indexhez lekérjük, O (1) időbe telik.



  • Változtatható méret . Beszúrhatunk annyi elemet, amennyit csak akarunk, és ennek megfelelően egy dinamikus tömb kibővül, hogy megtartsa őket.

  • Gyorsítótár-barát . A tömbökhöz hasonlóan a dinamikus tömbök egymás mellé helyezhetik az elemeket a memóriába, ezáltal hatékonyan kihasználva a gyorsítótárakat.



Van néhány hátránya a dinamikus tömbök használatának a kódban. Bár a legtöbb alkalmazásban mindennél többet használunk dinamikus tömböket, vannak olyan esetek, amikor korlátai miatt nem válnak a legelőnyösebb választássá.

  • Lassú legrosszabb eset . Normális esetben, miközben egy új elem hozzáadása a dinamikus tömb végén, O (1) -et vesz fel egy példányban. Ha azonban a dinamikus tömbnek nincs több indexe egy új elemhez, akkor azt ki kell terjesztenie, amely egyszerre veszi O (n) -et.

  • Költséges beszúrások és törlések. A tömbökhöz hasonlóan az elemek egymás mellett vannak tárolva. Tehát miközben egy elem hozzáadása vagy eltávolítása egy tömb közepén megköveteli más elemek lenyomását, amelyek egyszerre O (n) -et vesznek fel.

Az alábbi diagramok azt mutatják, hogy a tömbök valós időben hogyan működnek, és azt ábrázolják, hogy az elemek hogyan vannak egymásra rakva. Azt is megmutatja, hogy az utasítások hogyan változnak egy átlagos esetre és a legrosszabb esetben a tömbfüggvényekre.

tömb - dinamikus tömb java - edureka

Méret és kapacitás

Amikor inicializálunk egy dinamikus tömböt, a dinamikus tömb megvalósítása létrehoz egy megértett rögzített méretű tömböt. A kezdeti méret megfelel a megvalósításnak. Például készítsük el a megvalósítási tömböt 10 index használatára. Most négy elemet fűzünk a dinamikus tömbhöz. A dinamikus tömbünk hossza négy. Az alapul szolgáló tömbünk hossza azonban 10. Ezért azt mondhatnánk, hogy a dinamikus tömb mérete négy, kapacitása pedig 10. A dinamikus tömb egy meghatározott végindexet tárol, hogy nyomon kövesse a dinamikus tömb végpontját és a kezdõ tömböt. pont, ahonnan az extra kapacitás indul.

Megduplázódik

Vannak esetek, amikor megpróbálunk egy elemet csatolni egy tömbhöz, ahol a kapacitás már megtelt. Ezért a dinamikus tömb tömbök létrehozásához automatikusan új, nagyobb és mögöttes tömböket kell létrehozni. Általában kétszer nagyobbá válik az új kiegészítések kezelése, amire korábban nem számított. Ezért az egyes elemek másolása nem vesz fel időt. Amikor egy elemet hozzáadunk a dinamikus tömbhöz, automatikusan új dupla méretű tömböt készít, amely a hozzáfűzés nem vesz igénybe időt.

Elem törlése

Miközben töröl egy elemet egy tömbből, az alapértelmezett „remove ()” módszer eltávolít egy elemet a végéről, és automatikusan nullát tárol az utolsó indexnél. Ezenkívül egy adott index elemeit is törölni fogja az removeAt (i) metódus meghívásával, ahol az „I” index. Az removeAt (i) metódus eltolja az összes bal oldali elemet a megadott indexről.

Egy tömb átméretezése

Ha a tömböknek nincsenek olyan adatok a tömb jobb oldalán, amelyek felesleges memóriát foglalnak, akkor az srinkSize () módszer extra memóriát szabadít fel. Ha az összes helyet elfogyasztja és további elemeket ad hozzá, akkor az alapul szolgáló fix méretű tömbnek meg kell növelnie a méretét. A tényleges átméretezés drága, mivel nagyobb tömböt kell kiosztanunk, és át kell másolnunk az összes elemet egy benőtt tömbből, mielőtt az végre új elemet fűzhetne hozzá.

Az alábbiakban bemutatunk egy példát egy olyan programra, ahol a tömb mérete megtelik, és az új elemeket átmásoljuk egy új dupla méretű tömbbe. Az az elem, amely egy „Mahavir” nevű karaktersorozat, kiegészítés a már teljes, 3-as méretű tömbhöz.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Adja meg a tömb méretét: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter the array (Strings) :: ') for (int i = 0 i

Kimenet:

Ezzel a Java dinamikus tömb végére értünk. Remélem, ötlete támadt arról, hogyan lehet dinamikus tömbökkel dolgozni.

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a „Dinamikus tömb Java-ban” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.