Array at ArrayList

Anonim

Ano ang Array at ArrayList?

Ang parehong Array at ArrayList ay mga index-based na mga istruktura ng data na kadalasang ginagamit sa mga programang Java. Sa pangkalahatan, ang ArrayList ay panloob na nai-back sa pamamagitan ng arrays, gayunpaman, ang pag-unawa sa pagkakaiba sa pagitan ng dalawa ay ang susi sa pagiging isang mahusay na Java developer. Ito ay lubos na ang pangunahing hakbang upang magsimula sa, lalo na ang mga nagsisimula na nagsimula coding. Habang ang pareho ay ginagamit upang mag-imbak ng mga elemento sa Java, na maaaring alinman sa mga primitibo o mga bagay, mayroon silang makatarungang bahagi ng mga pagkakaiba sa mga tuntunin ng pag-andar at pagganap. Ang pangunahing pagkakaiba sa pagitan ng dalawa ay ang Array ay static samantalang ang ArrayList ay pabago-bago sa kalikasan. Tinutukoy ng artikulong ito ang dalawa sa iba't ibang aspeto upang mapili mo ang isa sa iba pang mga aspeto.

Pagkakaiba sa pagitan ng Array at Arraylist

  1. Resizable

Ang isa sa mga pangunahing at kapansin-pansin na mga pagkakaiba sa pagitan ng dalawang istruktura ng data ay ang Array ay static na likas na nangangahulugang ito ay isang nakapirming haba ng uri ng data habang ang ArrayList ay pabago-bago sa kalikasan na nangangahulugan na ito ay isang variable na haba ng istraktura ng data. Sa mga teknikal na termino, ang haba ng Array ay hindi mababago o mabago sa sandaling nilikha ang Array object. Naglalaman ito ng sunud-sunod na koleksyon ng mga elemento ng parehong uri ng data. Ang mga arrays sa Java ay gumagana ng iba kaysa sa pag-andar nila sa C / C ++. Ang ArrayList, sa kabilang banda, ay maaaring palitan ang sarili nito at ang mga arrays ay maaaring lumago habang kailangan nila. Dahil ito ay isang dynamic na istraktura ng data, ang mga elemento ay maaaring idagdag at alisin mula sa listahan.

  1. Generics

Hindi ka maaaring gumawa ng mga Arrays of Generic klase ng mga interface sa Java kaya arrays at generics ay hindi pumunta sa kamay sa kamay na imposible upang lumikha ng Generic Array para sa isang pangunahing dahilan na arrays ay covariant habang generics ay invariant. Habang ang Array ay isang nakapirming haba ng istraktura ng data, naglalaman ito ng mga bagay ng parehong klase o mga primitibo ng partikular na uri ng data. Kaya't kung sinubukan mong mag-imbak ng iba't ibang uri ng data bukod sa isang tinukoy habang lumilikha ng Array object, ito lamang ay nagtatapon ng "ArrayStoreException". Ang ArrayList, sa kabilang banda, ay sumusuporta sa Generics upang matiyak ang uri-kaligtasan.

  1. Primitives

Ang mga primitive na uri ng data tulad ng int, double, haba, at char ay hindi pinapayagan sa ArrayList. Ito sa halip hold na mga bagay at primitives ay hindi itinuturing na mga bagay sa Java. Ang mga arrays, sa kabilang banda, ay maaaring magkaroon ng mga primitiba pati na rin ang mga bagay sa Java dahil ito ay isa sa mga pinaka mahusay na istruktura ng data sa Java para sa pag-iimbak ng mga bagay. Ito ay isang pinagsama-samang uri ng data na idinisenyo upang i-hold ang mga bagay na maaaring alinman sa pareho o iba't ibang uri.

  1. Haba

Upang makuha ang haba ng Array, kailangang ma-access ng code ang haba na attribute dahil kailangang malaman ng haba ang haba upang magsagawa ng mga operasyon sa Array. Habang ang ArrayList ay gumagamit ng laki () na paraan upang matukoy ang sukat ng ArrayList, ito ay sa halip naiiba mula sa pagtukoy sa haba ng Array. Tinutukoy ng laki () na katangian ng paraan ang bilang ng mga elemento sa isang ArrayList, na kung saan ay ang kakayahan ng ArrayList.

Halimbawa:

pampublikong klase ArrayLengthTest {

public static void main (String [] args) {

ArrayList arrList = new ArrayList();

String [] items = {"One", "Two", "Three"};

para sa (String str: item) {

arrList.add (str);

}

int size = items.size ();

System.out.println (laki);

}

}

  1. Pagpapatupad

Ang Array ay isang native na programming component sa Java na nilikha nang magilas at ginagamit nila ang assignment operator upang hawakan ang mga elemento, habang ang ArrayList ay gumagamit ng add () attribute upang magsingit ng mga elemento. Ang ArrayList ay isang klase mula sa balangkas ng koleksyon sa Java na gumagamit ng isang hanay ng mga tinukoy na pamamaraan upang ma-access at baguhin ang mga elemento. Ang laki ng isang ArrayList ay maaaring tumaas o nabawasan nang pabago-bago. Ang mga elemento sa isang array ay naka-imbak sa magkadikit na lokasyon ng memorya at ang laki nito ay nananatiling static sa buong.

  1. Pagganap

Habang ang parehong mga istraktura ng data ay nagbibigay ng katulad na uri ng pagganap bilang isang ArrayList ay nai-back sa pamamagitan ng Arrays, ang isa ay may isang maliit na gilid sa paglipas ng isa pang karamihan sa mga tuntunin ng CPU oras at paggamit ng memory. Sabihin nating, kung alam mo ang sukat ng array, malamang na pumunta ka sa ArrayList. Gayunpaman, ang pag-ulit sa isang Array ay medyo mas mabilis kaysa sa pag-ulit sa isang ArrayList. Kung ang programa ay nagsasangkot ng isang malaking bilang ng mga primitibo, isang array ay gagawa ng makabuluhang mas mahusay kaysa sa ArrayList, sa mga tuntunin ng parehong oras at memorya. Ang mga arrays ay isang mababang antas na programming language na maaaring magamit sa mga pagpapatupad ng koleksyon. Gayunpaman, ang pagganap ay maaaring mag-iba depende sa operasyon na iyong ginagawa.

Array Vs. Arraylist

Array ArrayList
Ang Array ay isang nakapirming haba ng data na istraktura na ang haba ay hindi maaaring mabago kapag ang array object ay nilikha. Ang ArrayList ay pabago-bago sa kalikasan na nangangahulugang maaari itong palitan ang sarili nito upang umunlad kapag kinakailangan.
Ang laki ng isang array ay nananatiling static sa buong programa. Ang laki ng isang ArrayList ay maaaring lumago nang magilas depende sa pagkarga at kapasidad.
Gumagamit ito ng assignment operator upang mag-imbak ng mga elemento. Ginagamit nito ang add () na katangian upang magpasok ng mga elemento.
Maaari itong maglaman ng mga primitibo pati na rin ang mga bagay ng pareho o iba't ibang uri ng data. Hindi pinapayagan ang Primitives sa ArrayList. Maaari lamang itong maglaman ng mga uri ng bagay.
Ang mga Arrays and Generics ay hindi magkasundo. Pinapayagan ang Generics sa ArrayList.
Ang mga array ay maaaring maging multi-dimensional. Ang ArrayList ay nag-iisang dimensional.
Ito ay isang katutubong programming component kung saan ang mga elemento ay naka-imbak sa magkadikit na lokasyon ng memorya. Ito ay isang klase mula sa balangkas ng koleksyon ng Java kung saan ang mga bagay ay hindi naka-imbak sa magkadikit na mga lokasyon.
Ang haba ng variable ay ginagamit upang matukoy ang haba ng Array. Ang () paraan ng paggamit ay ginagamit upang matukoy ang laki ng ArrayList.
Ang pagkuha ng mas kaunting memory kaysa sa ArrayList upang mag-imbak ng mga tinukoy na elemento o bagay. Dadalhin ng mas maraming memorya kaysa sa Array upang mag-imbak ng mga bagay.
Iterating sa ibabaw ng isang array ay mas mabilis kaysa sa iterating sa isang ArrayList. Iterating sa isang ArrayList ay mas mabagal sa mga tuntunin ng pagganap.

Buod

Habang ang ilan ay maaaring isipin na ang pagpapatupad ng arrays sa isang programa ay maaaring makakuha ng mga resulta ng mas mabilis kaysa sa paggawa ng parehong sa ArrayLists para sa simpleng dahilan na arrays ay isang mababang antas ng istraktura ng data, ang pagganap ay maaaring mag-iba batay sa kung anong operasyon ang iyong ginaganap. Well, ang haba ng isang Array ay naayos na, samantalang ang laki ng ArrayList ay maaaring tumaas o nabawasan nang pabago-bago, kaya ang ArrayList ay may isang maliit na gilid sa ibabaw ng Array sa mga tuntunin ng pag-andar. Gayunpaman, sa kabila ng mga pagkakaiba, nagbabahagi rin sila ng ilang pagkakatulad. Parehong mga istruktura ng data na nakabatay sa index sa Java na nagpapahintulot sa iyo na mag-imbak ng mga bagay at parehong pinahihintulutan nila ang null value pati na rin ang mga duplicate. Well, kung alam mo ang laki ng mga bagay muna, dapat kang pumunta sa isang array, at kung hindi ka sigurado tungkol sa laki, pumunta sa ArrayList.