Pole a řetězec

Anonim

Hlavním rozdílem mezi těmito dvěma je, že matice mohou mít libovolný datový typ libovolné délky, zatímco řetězce jsou obvykle znaky ASCII, které jsou ukončeny znakem null ' 0'. Oba jsou velmi odlišné, pokud jde o to, jak jsou implementovány v různých programovacích jazycích. Políčka a řetězce pracují velmi odlišně v Javě stejně jako v C / C ++. Tento článek představuje nezaujaté srovnání mezi maticí a řetězci.

Co je pole?

Mnoho aplikací zahrnuje velký objem dat a zpracování tak velkého množství dat, potřebujeme výkonný datový typ, který by usnadnil efektivní ukládání a přístup k datovým položkám. Zde se objevují pole na poli. Políčka jsou speciální proměnná, která odkazuje na sekvenční kolekci podobných proměnných, které jsou označovány běžným názvem. Z technického hlediska je to sekvenční sbírka prvků stejných základních typů, které sdílejí jediné jméno. Jednoduše řečeno, poskytuje pohodlný způsob seskupování souvisejících informací dohromady. Políčka v jazyce Java pracují velmi odlišně než v C / C ++.

Co je řetězec?

Řetězec je posloupnost znaků, která je reprezentována jako jedna datová položka, která je ukončena zvláštním znakem ' 0' (znak null). V jazycích Java a C ++ jsou řetězce třídy a chovají se jinak. Řetězce jsou deklarovány podobně jako pole s výjimkou typu char. Řetězec je sousedící sekvence hodnot se společným názvem. Na rozdíl od polí jsou řetězce neměnné, což znamená, že jejich hodnoty nemohou být po přidání změněny. Původní obsah řetězce nelze změnit po přidání hodnoty řetězci. Jedná se o jednu z nejčastěji používaných tříd v paradigmatu programování.

Rozdíl mezi pole a řetězcem

Definice

Pole je množina prvků stejných základních typů s pevnou velikostí. Jedná se jednoduše o sbírku podobných proměnných, které sdílejí jeden název a mohou být použity jako reprezentace seznamu jmen nebo seznamu čísel. Řetězec je s několika výjimkami podobný matici. Jedná se o posloupnost znaků, které jsou reprezentovány jako jedna datová položka.

Úložný prostor

Jedním z hlavních rozdílů mezi polem a řetězcem je, jak jsou uloženy v paměti. Souvislý paměťový blok je přidělen pro pole, což znamená nepřetržitý blok paměti. Prvky polí jsou ukládány souvisle do rostoucích paměťových míst. Řetězce jsou uloženy jako jiné typy polí, když jsou deklarovány jako znaková pole. Řetězcová třída obsahuje ukazatel na nějakou část paměti haldy, kde je skutečný obsah řetězce uložen v paměti.

Stát

Jedním z klíčových rozdílů mezi těmito dvěma je, že řetězce jsou neměnné, což znamená, že když je přiřazen objekt řetězce, hodnota objektu nemůže být změněna v paměti. Imutable se jednoduše vztahuje na stav objektu, který nelze po jeho vytvoření změnit. Původní obsah řetězce nelze upravit po přidání hodnoty řetězci. Jednoduše znamená, že nové hodnotě nelze přiřadit stejnou adresu do paměti, kde byla uložena předchozí hodnota. Na druhou stranu jsou matice měnitelné, což znamená, že pole mohou být změněny nebo modifikovány i po jejich vytvoření.

Datový typ

Pole jsou nejúčinnější datová struktura pro reprezentaci dat nebo ukládání a přístup k objektům stejných nebo různých datových typů. Dynamicky se vytvářejí a mohou být přiřazeny proměnným všech datových typů. V javě může být vytvořeno pole, které uchová různé typy dat. Může obsahovat primitivy i reference. Pole jsou speciální proměnné, které mohou současně obsahovat více než jednu hodnotu. Naproti tomu řetězec může obsahovat pouze char data, která jsou nejčastěji používanými datovými typy. Znakové řetězce mohou obsahovat libovolnou posloupnost písmen a číslic.

Velikost

Délka pole se vytvoří při jeho vytvoření a jednou provedena, délka je pevná. Jednoduše řečeno, délka pole má pevnou velikost, což znamená, že může mít pevný počet hodnot jednoho typu. Položky s proměnnými velikostmi nejsou povoleny v C. Jakmile je pole přiděleno, je to pevná velikost. Velikost řetězce je proměnná, což může být změněno, pokud je ukazatel znaku.

Array vs. String: Srovnávací graf

Shrnutí pole vs. řetězec

Řetězce a matice jsou docela podobné, s výjimkou délky pole je fixní, zatímco řetězce mohou mít různý počet prvků. Technické pole jsou speciální typ proměnné, které může obsahovat více než jednu hodnotu najednou. Jedná se o sekvenční sbírku prvků podobných datových typů, zatímco řetězce jsou posloupností znaků používaných k reprezentaci textu spíše než čísel. Kromě toho jsou řetězce neměnné, což znamená, že hodnota objektu nemůže být po vytvoření změněna, zatímco matice jsou měnitelné, což znamená, že pole mohou být změněny. Jednoduše řečeno, pole je sada podobných proměnných, zatímco řetězec je posloupnost znaků reprezentovaných jediným typem dat.