Pagkakaiba sa pagitan ng ArrayList at LinkList sa Java

May -Akda: Laura McKinney
Petsa Ng Paglikha: 3 Abril 2021
I -Update Ang Petsa: 10 Mayo 2024
Anonim
Pagkakaiba sa pagitan ng ArrayList at LinkList sa Java - Teknolohiya
Pagkakaiba sa pagitan ng ArrayList at LinkList sa Java - Teknolohiya

Nilalaman


Ang ArrayList at linkedList ay ang Koleksyon mga klase, at pareho silang nagpapatupad ng Listahan interface. Lumilikha ang klase ng ArrayList ng listahan na kung saan ay panloob na nakaimbak sa isang pabago-bago pag-ayos na lumalaki o umuurong sa laki habang ang mga elemento ay idinagdag o tinanggal mula dito. Lumilikha din ang LinkList ng listahan na kung saan ay panloob na nakaimbak sa isang Doble Naka-link Listahan. Parehong mga klase ay ginagamit upang mag-imbak ng mga elemento sa listahan, ngunit ang pangunahing pagkakaiba sa pagitan ng parehong mga klase ng ArrayList at LinkList ay iyon ArrayList pinapayagan ang random na pag-access sa mga elemento sa listahan habang nagpapatakbo ito sa isang batay sa index istruktura ng data. Sa kabilang banda, ang Naka-linkList ay hindi pinapayagan ang random na pag-access dahil wala itong mga index na mai-access ang mga elemento nang direkta, kailangan itong maglakad sa listahan upang makuha o ma-access ang isang elemento mula sa listahan.


Talakayin natin ang ilang higit pang pagkakaiba sa pagitan ng ArrayList at LinkList sa tulong ng tsart ng paghahambing na ipinakita sa ibaba.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing

Batayan para sa PaghahambingArrayListNaka-linkList
Pangunahing Pinapayagan ng ArrayList ang random na pag-access sa mga elemento sa listahan.Hindi pinapayagan ng LinkList ang random na pag-access sa mga elemento sa listahan.
Istruktura ng dataAng panloob na istraktura na ginagamit para sa pag-iimbak ng mga elemento ay ang dynamic na hanay.Ang panloob na istraktura na ginagamit upang mag-imbak ng mga elemento ay dobleng listahan ng link.
PinalawakAng ArrayList ay nagpapalawak sa klase ng AbstarctList.Ang LinkList ay nagpapalawak ng AbstractSequentialList.
PagpapatupadIpinapatupad ng AbstractList ang interface ng Listahan.Nagpatupad ang ListList List, Deque, Queue.
Pag-access Ang pag-access sa mga elemento sa listahan ay mas mabilis sa ArrayList.Ang pag-access sa mga elemento sa listahan ay mas mabagal sa LinkList.
PagpapatakboAng pagmamanipula sa mga elemento sa listahan ay mas mabagal sa ArrayList.Ang pagpapakilos sa mga elemento sa listahan ay mas mabilis sa LinkList.
Pag-uugaliAng ArraylList ay kumikilos bilang Listahan habang nagpapatupad ito ng listahan.Ang LinkList ay kumikilos bilang Listahan ng isang balon pati na rin sa Queue habang ipinapatupad nito ang Listahan at Queue pareho.


Kahulugan ng ArrayList

Ang AbstractList ang klase ay tinukoy ng Framework ng Koleksyon. Pinalawak nito AbstarctList at nagpapatupad Listahan interface. Gumagamit ang ArrayList dynamic na hanay i.e. ang hanay ng variable na haba bilang isang panloob na istraktura ng data upang maiimbak ang mga elemento sa listahan. Ang pangangailangan ng ArrayList ay lumitaw dahil ang array sa java ay may takdang haba. Kaya hindi ito maaaring lumaki o pag-urong sa laki habang ang mga elemento ay idinagdag o tinanggal mula sa hanay. Kaya kailangan mong malaman ang laki ng kinakailangang hanay nang maaga. Ngunit ang listahan ng array na ipinatupad gamit ang klase ng ArrayList ay maaaring lumago at mag-urong sa laki habang ang mga elemento ay idinagdag o tinanggal mula sa hanay.

Ang listahan ng array na ipinatupad gamit ang ArrayList ay maaaring mai-access sapalaran habang ang ArrayList ay nagpapatakbo sa index-based. Kaya ang pag-alam ng index maaari kang direktang ma-access ang labing-walo sa listahan. Mayroong tatlong tagapagbuo ng ArrayList:

ArrayList () ArrayList (Koleksyon <? Umaabot E> c) ArrayList (int kapasidad)

Ang una nagpapatupad ang tagabuo ng isang walang laman na listahan ng array. Ang pangalawa nagpapatupad ang tagabuo ng isang listahan ng array na nauna nang ginamit ang Koleksyon c mga elemento. Ang pangatlo nagpapatupad ng tagabuo ng listahan ng array kasama ang kapasidad na ibinigay sa argumento. Nagtatrabaho sa ArrayList, kung minsan ay kakailanganin mong i-convert ang Collection ArrayList sa isang array. Maaari itong gawin sa pamamagitan ng pagtawag toArray ().

Kahulugan ng linkedList

Tulad ng ArrayList, Naka-linkList ay din a Koleksyon gamit ng klase dobleng naka-link na listahan bilang isang panloob na istraktura ng data upang maiimbak ang mga elemento sa listahan. Ang klase ng linkedList ay umaabot AbstractSequentialList at nagpapatupad ng Listahan, Deque at Queue mga interface. Ang naka-link na listahan na ipinatupad gamit ang LinkList ay hindi mai-access nang random. Kung nais mong kunin ang anumang elemento mula sa listahan, kailangan mong pag-aralan ang listahan upang maghanap sa elementong ito.

Mayroong dalawang mga konstruksyon sa klase ng LinkList.

Ang LinkList () Ang LinkList (Koleksyon <? Ay umaabot E> c)

Ang una Bumubuo ang tagabuo ng isang walang laman na listahan na naka-link. Ang pangalawa ang konstruktor ay lumilikha ng isang naka-link na listahan, inisyal na may mga elemento ng Koleksyon c.

Sa linkedList, ang pagmamanipula ng listahan ay madali at mabilis. Ito ay dahil kung magdagdag ka o magtatanggal ng anumang elemento sa listahan, pagkatapos ay hindi na kailangang ilipat ang mga elemento tulad ng sa ArrayList. Ngunit ang pag-access ay mas mabagal dahil wala itong index na direktang ma-access ang mga elemento.

  1. Ang listahan na ipinatupad ng ArrayList ay maaaring mai-access nang random dahil ang ArrayList ay nagpatibay sa istraktura ng data na batay sa index ng array. Sa kabilang banda, ang listahan na ipinatupad ng LinkList ay hindi mai-access nang random dahil para sa pagkuha o pag-access sa isang partikular na elemento sa listahan kailangan mong maglakad sa listahan.
  2. Ang panloob na istraktura ng data na ginamit ng ArrayList upang maimbak ang mga elemento ng listahan ay a dynamic na hanay na maaaring lumaki o pag-urong habang ang mga elemento ay idinagdag o tinanggal mula sa listahan. Gayunpaman, ang panloob na istraktura ng data na ginamit ng LinkList upang maimbak ang mga elemento sa listahan ay dobleng naka-link na listahan.
  3. Ang ArrayList ay nagpapalawak ng AbstractList klase na kung saan ay din isang koleksyon ng klase samantalang, ang klase ng LinkList ay umaabot AbstractSequentialList klase na muli ng isang Koleksyon ng klase.
  4. Ginagampanan ang klase ng ArrayList Listahan samantalang ang interface, ipinatutupad ang klase ng LinkList Listahan, Queue, at Deque mga interface.
  5. Ang pag-access sa mga elemento mula sa listahan na ipinatupad gamit ang ArrayList ay mas mabilis dahil mayroon itong isang istraktura ng data na batay sa index. Sa kabilang banda, walang istrakturang batay sa index sa listahan na ipinatupad ngLinkledList. Samakatuwid, ang isang tagapagpatay ay inilalapat sa listahan upang maabot ang elemento na mai-access na gumagawa ng pag-access mas mabagal sa linkedList.
  6. Ang Manipulation ay Manipulationin ang listahan na ipinatupad gamit ang ArrayList dahil kapag ang isang elemento ay idinagdag o tinanggal mula sa listahan, ang mga elemento sa listahan ay inilipat upang mapaunlakan ang pagbabago. Sa kabilang banda, ang pagmamanipula ay mas mabilis sa listahan na ipinatupad ng LinkList dahil hindi ito nangangailangan ng paglilipat ng mga elemento sa listahan bilang karagdagan o pagtanggal ng mga elemento mula sa listahan.
  7. Ang ArrayList ay kumikilos tulad ng a listahan dahil ipinatutupad nito ang interface ng Listahan samantalang, angAng LinkList ay kumikilos bilang listahan at pila dahil ipinatutupad nito ang List at Queue pareho.

Konklusyon:

Kapag mayroong madalas na pagdaragdag o pagtanggal ng mga elemento sa listahan, dapat gamitin ang LinkList dahil mas mahusay itong gumaganap sa pagmamanipula. Kung ang madalas na paghahanap ay inilalapat sa listahan, ang ArrayList ay pinakamahusay na pagpipilian, dahil mas mahusay itong gumaganap habang ang pag-access sa mga elemento mula sa listahan.