Co je Dynamic Array v Javě?



Dynamické pole v Javě je typ pole s velkým vylepšením pro automatickou změnu velikosti. Jediným omezením polí je to, že jde o pevnou velikost.

Pole v jsou homogenní datové struktury implementované v Javě jako objekty. Pole ukládají jednu nebo více hodnot konkrétního datového typu a poskytují indexovaný přístup k jejich ukládání. Ke konkrétnímu prvku v poli má přístup jeho index. V tomto článku probereme Dynamic Array v Javě v následujícím pořadí:

Úvod do dynamického pole v Javě

Dynamické pole je takový typ pole s velkým vylepšením pro automatickou změnu velikosti. Jediným omezením polí je to, že jde o pevnou velikost. To znamená, že můžete určit pouze počet prvků, které vaše pole může pojmout předem. Na druhou stranu se dynamická pole mohou rozšiřovat, když přidáváme další prvky v reálném čase. Kodér proto nemusí předem určovat velikost pole. Má také několik dalších silných stránek:





  • Rychlé vyhledávání . Stejně jako pole, při načítání prvku v daném indexu zabere čas O (1).



  • Variabilní velikost . Můžeme vložit tolik prvků, kolik chceme, a dynamické pole se podle toho rozšíří, aby je udrželo.

  • Přátelský k mezipaměti . Podobně jako pole, dynamická pole mohou ukládat položky vedle sebe do paměti, což umožňuje efektivní využití mezipaměti.



Existují určité nevýhody používání dynamických polí v našem kódu. I když ve většině aplikací používáme dynamická pole více než cokoli jiného, ​​existují případy, kdy se díky svým omezením nestanou nejpreferovanější volbou.

  • Pomalý nejhorší případ se připojí . Normálně, zatímco přidání nového prvku na konci dynamického pole trvá O (1) v jedné instanci. Pokud však dynamické pole nemá žádné nové indexy pro novou položku, bude se muset rozbalit, což trvá O (n) najednou.

  • Nákladné vkládání a mazání. Podobně jako u polí jsou prvky uloženy vedle sebe. Při přidávání nebo odebírání položky ve středu pole je tedy nutné tlačit na další prvky, které berou O (n) najednou.

Níže uvedené diagramy ukazují, jak pole fungují v reálném čase, a zobrazují, jak jsou prvky skládány. Ukazuje také, jak se pokyny mění pro průměrný případ a nejhorší případ funkcí pole.

pole - dynamické pole v java - edureka

Velikost vs. kapacita

Když inicializujeme dynamické pole, implementace dynamického pole vytvoří pochopené pole pevné velikosti. Počáteční velikost odpovídá implementaci. Například vytvořme naše implementační pole tak, aby používalo 10 indexů. Nyní připojujeme čtyři položky k našemu dynamickému poli. Naše dynamické pole má nyní délku čtyři. Naše základní pole má však délku 10. Mohli bychom tedy říci, že velikost dynamického pole je čtyři a jeho kapacita je 10. Dynamické pole ukládá konkrétní koncový index, aby bylo možné sledovat koncový bod dynamického pole a počáteční bod, odkud začíná další kapacita.

dynamická alokace paměti v c ++ s ukázkovým programem

Zdvojnásobení připojí

Mohou nastat případy, kdy se pokusíme připojit položku do pole, kde je kapacita již plná. Proto pro vytvoření dynamických polí místnosti automaticky vytvářejte nové, větší a podkladové pole. Obvykle se stává dvakrát tak velkým, aby zvládl jakékoli nové přírůstky, což dříve nepředpokládal. Proto kopírování každé položky nespotřebovává čas. Kdykoli připojíte položku k našemu dynamickému poli, automaticky se vytvoří nové podkladové pole s dvojnásobnou velikostí, které nebude trvat dlouho.

Odstranění prvku

Při mazání prvku z pole výchozí metoda „remove ()“ odstraní prvek z konce a automaticky uloží nulu na poslední index. Rovněž odstraní prvky v určitém indexu voláním metody removeAt (i), kde „I“ je index. Metoda removeAt (i) posune všechny pravé prvky na levé straně od daného indexu.

Změna velikosti pole

Pokud pole na pravé straně pole nemají žádná data, která by zabrala zbytečnou paměť, uvolní metoda srinkSize () další paměť. Když se spotřebují všechny sloty a přidají se další prvky, základní pole pevné velikosti musí zvětšit velikost. Skutečná změna velikosti je drahá, protože musíme přidělit větší pole a zkopírovat dopředu všechny prvky z pole, které jste zarostli, než může konečně připojit novou položku.

Níže je uveden příklad programu, kde se velikost pole zaplní a nové prvky se zkopírují do nového pole dvojité velikosti. Prvek, který je řetězcovým prvkem zvaným „Mahavir“, je doplňkem k již celé řadě velikosti 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner veřejná třída AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Zadejte velikost pole :: ') int size = sc.nextInt () String myArray [] = nový String [velikost] System.out.println (' Zadejte prvky pole (Strings) :: ') pro (int i = 0 i

Výstup:

S tímto se dostáváme na konec článku Dynamic Array in Java. Doufám, že máte představu o tom, jak pracovat s dynamickými poli.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto blogu „Dynamic Array in Java“ a my se vám ozveme co nejdříve.