Itakda at Ilista

Anonim

Pagkakaiba sa pagitan ng Array List at Linked List

Bago kami makarating sa mga aktwal na pagkakaiba, ipaalam sa amin upang malaman kung ano talaga sila?

Ano ang Set?

Nakakita kami sa konsepto ng Itakda sa matematika at ang Set dito higit pa o mas mababa ay nangangahulugang pareho. Oo, ito ay isang koleksyon ng mga elemento at sa karamihan ng mga kaso, isang koleksyon ng mga katulad na mga elemento. Maaari mong subukan ang pagdaragdag ng mga sangkap na ito sa isang Itakda at subukan ang pag-print upang maunawaan, kung paano ito ay talagang naka-imbak.

Input sa isang Itakda: 20, 50, 10, 30.

Ito ay talagang naka-imbak sa isang Set bilang 10, 20, 30, 50.

Ang mga elemento ay pinagsunod-sunod dito at hindi nakaimbak sa kanilang order sa pagpapasok. Ito ay isa sa mga tampok ng Itakda na palaging uri ang mga elemento bago mag-iimbak at siyempre, may mga pagbubukod dito at ang isa ay ang LinkedhashSet habang pinanatili nito ang insertion order ng mga elemento.

Sa mga termino sa computer, ang Set ay nagsasama ng ilang karagdagang mga katangian tulad ng Mga Paraan at Pagmamaneho. Ang mga pamamaraan ay tulad ng mga pag-andar at gumagawa sila ng ilang mga gawain tulad ng pagdagdag, pag-alis o pag-ulit sa pamamagitan ng hanay ng mga elemento. Karamihan sa atin ay kilala sa terminong Inheritance at nangangahulugang pareho din dito. Oo, maaari naming magmana ng Pamamaraan mula sa Koleksyon nito, upang magamit ito sa Set Interface. Muli naming pinag-uusapan ang isang bagong termino i.e. ang Set Interface, at ito ay walang higit pa kaysa sa buong hanay ng mga elemento kabilang ang Mga Paraan.

Paano ipatupad ito?

Para lamang sa isang mas mahusay na pag-unawa, kinakatawan namin ang isang Set kasama ang Syntax nito. Mula sa syntax sa ibaba, maaari mong matukoy ang iba't ibang uri ng Set tulad ng HashSet at TreeSet.

import java.util. *;

setexample klase ng pampublikong {

public static void main (String args []) {

int count [] = {34, 22,10,60,30,22} {25, 17, 76, 12, 88, 57};

Itakda set = bagong HashSet();

subukan {

para sa (int i = 0; i <5; i ++) {

set.add (count [i]);

}

System.out.println (set);

TreeSet sortedSeteg = bagong TreeSet(itakda);

System.out.println ("Narito mayroon kaming pinagsama-samang output:");

System.out.println (sortedSeteg);

System.out.println ("Tumingin sa Unang elemento:" + (Integer) sortedSet.first ());

System.out.println ("Tumingin sa huling elemento:" + (Integer) sortedSet.last ());

}

catch (Exception e) {}

}

}

Ang output ng code sa itaas ay ang mga sumusunod.

[25, 17, 76, 12, 88] Narito mayroon kaming pinagsama-samang output: [12, 17, 25, 76, 88] Tingnan ang Unang sangkap: 12 Tingnan ang huling elemento: 88

Ano ang Listahan?

Ang isang Listahan ay nagpalawak ng Koleksyong katulad ng kung paano ginawa ng Set, ngunit pinanatili nito ang pagkakasunud-sunod ng pagpapasok. Sinusubukan mong idagdag ang mga sumusunod na pangalan sa isang listahan at makita kung paano ito idinagdag.

Ang input sa isang Listahan: John, Nancy, Mary, Alice.

Paano ito nakaimbak sa isang Listahan: John, Nancy, Mary, Alice.

Pansinin lamang ang pagkakasunud-sunod kung saan ipinasok ang mga ito. Maaari mong matukoy na 'John' ang unang elemento sa input pati na rin ang output at sinusundan ng parehong pagkakasunud-sunod kung saan ang mga pangalan ay ipinasok. Maaari naming isaalang-alang ang isa sa mga pangunahing katangian ng Listahan.

Paano ipatupad ito?

Tingnan natin ang ilan sa mga pamamaraan ng Listahan tulad ng ArrayList at LinkedList sa ilalim ng syntax.

import java.util. *; pampublikong klase Collectionssample {

public static void main (String [] args) {

Listahan ng a1 = bagong ArrayList (); a1.add ("John"); a1.add ("Nancy"); a1.add ("Mary"); a1.add ("Alice"); System.out.println ("Mga Elemento ng ArrayList"); System.out.print (" t" + a1);

Listahan l1 = bagong LinkedList (); l1.add ("Silvia"); l1.add ("Arjun"); l1.add ("Deepika"); l1.add ("Susan"); System.out.println (); System.out.println ("Mga Sangkap ng LinkedList ay"); System.out.print (" t" + l1); }}

Ang output ng syntax sa itaas ay ang mga sumusunod.

Ang mga ArrayList Elemento ay

[John, Nancy, Mary, Alice]

Mga Elemento ng LinkedList

[Silvia, Arjun, Deepika, Susan]

Ito ay napakalinaw mula sa code sa itaas na ang parehong ArrayList at ang LinkedList ay nagpapanatili ng pagpapasok ng order.

Paano sila naiiba?

  • Paraan at Mga Paglalarawan:

Ang Set at ang Listahan ay may sariling pamamaraan at tingnan natin ang ilan sa mga ito dito.

S.No Itakda - Mga Paraan Listahan - Mga Pamamaraan
1. idagdag () - Ito ay upang magdagdag ng mga bagay sa isang koleksyon. walang laman na idagdag (int index, Object obj) - Ito ay nagdaragdag ng object 'obj' sa tinukoy na 'index' ng listahan ng invoking at tinitiyak nito na walang elemento ay mapapatungan sa pamamagitan ng paglilipat sa mga nakaraang elemento.
2. malinaw () - Ito ay upang alisin ang mga bagay mula sa isang koleksyon. boolean addAll (int index, Collection c) - Nagdaragdag ito ng buong koleksyon 'c' sa listahan ng invoking at sa 'index' na tinukoy. Tinitiyak din nito na walang mga elemento ang mapapatungan. Maaari rin nating suriin ang katumpakan ng operasyon nito sa pamamagitan ng pagsusuri sa halaga ng pagbalik. Nagbabalik 'totoo' kung ang pagbabago ay matagumpay kung hindi man, nagbabalik ito ng isang halaga na 'false'.
3. naglalaman ng () - Ito ay upang suriin kung ang Set ay naglalaman ng isang tiyak na bagay sa loob nito. Nagbabalik ito ng isang halaga na 'totoo' kung ang bagay ay naroroon sa Set. Nakuha ang object (int index) - Binabalik nito ang elemento o bagay sa tinukoy na 'index'.
4. isEmpty () - Ito ay upang matukoy kung ang koleksyon ay tumutulong sa bilang walang mga elemento sa loob nito. Nagbabalik ito ng isang halaga na 'totoo' kung walang elemento. int lastIndexOf (Object obj) - Gumagana ito katulad ng kabaligtaran ng indexOf () Paraan. Binabalik nito ang huling paglitaw ng tinukoy na Object 'obj' at isang halaga na '1' ang ibabalik kung walang gayong bagay sa listahan. Samakatuwid, maaari rin itong magamit bilang naglalaman ng () Paraan ng Set Interface.
6. alisin () - Ito ay upang alisin ang isang elemento mula sa isang koleksyon sa pamamagitan ng pagtukoy nito bilang isang parameter sa paraan. ListIterator listIterator () - Ito ay nagbabalik ng iterator sa panimulang index ng Listahan.
7. laki () - Ito ay upang mabilang ang bilang ng mga bagay o mga elemento na may koleksyon. ListIterator listIterator (int index) - Tumutulong ito sa pag-ulit sa pamamagitan ng listahan ng invoking na nagsisimula sa tinukoy na 'index'.
8. Alisin ang object (int index) - Tinatanggal nito ang object sa tinukoy na 'index' at ibabalik ang tinanggal na elemento bilang resulta. Binabawasan din nito ang nangyari na mga indeks ng listahan upang ipakita ang pagtanggal.
9. Itakda ang object (int index, Object obj) - Ito ay upang italaga ang Object 'obj' sa listahan ng invoking sa tinukoy na 'index'.
10. Listahan ng sublist (int start, int end) - Ito ay upang isama ang mga bagay mula sa index 'magsimula' sa index 'end' sa listahan na tinatawag na Paraan.
  • Pagpapanatili ng Pagpipilian sa Pagpipinta:

Ang Set ay hindi nagpapanatili ng pagkakasunud-sunod ng mga elemento na kung saan sila ay ipinasok sa ito samantalang ang Listahan ay nagpapanatili nito. Mayroong pagbubukod sa panuntunang ito para sa LinkedHashSet habang pinanatili nito ang pagkakasunud-sunod ng pagpapasok ngunit ang iba pang Itakda tulad ng HashSet at TreeSet ang mga elemento bago itago ito. Ang parehong ay inilarawan sa mga halimbawa sa ibaba.

Itakda Input: Cat, Doll, Apple.

Itinala bilang: Apple, Cat, Doll.

Listahan ng Input: Cat, Doll, Apple.

Itinala bilang: Cat, Doll, Apple.

  • Ang pagkakaroon ng mga Duplicate:

Ang Set ay hindi kailanman nagpapahintulot sa mga duplicate kung saan ang isang Listahan ay nagbibigay-daan ito. Kung ang isang dobleng halaga ay dapat idagdag sa isang listahan pagkatapos ito ay makakakuha ng overwritten. Tingnan ang mga sample para sa Set and List duplicates.

Itakda ang Input: 10, 20, 20, 50.

Naka-imbak bilang: 10, 20, 50.

Listahan ng Input: 10, 20, 20, 50.

Naka-imbak bilang: 10, 20, 20, 50.

  • Null Values:

Ang Set ay maaaring magkaroon lamang ng isang null na halaga kung saan ang isang Listahan ay maaaring magkaroon ng higit sa isang null na halaga at hindi limitado sa anumang numero.

Itakda ang Input: null, null, Man, Dog, Plane.

Naka-imbak bilang: null, Aso, Man, Plane.

Listahan ng Input: null, null, Man, Dog, Plane.

Naka-imbak bilang: null, null, Man, Dog, Plane.

  • Paggamit ng Iterator & ListIterator:

Ang pamamaraan ng Iterator ay mahusay na gumagana sa parehong Set at List samantalang ang ListIterator paraan ay gumagana lamang sa Listahan. Ang ListIterator ay maaaring gamitin upang tumawid pasulong pati na rin ang paatras sa pamamagitan ng Listahan.

  • Ang pagkakaroon ng Legacy Class:

Ang Set ay walang klase ng legacy samantalang ang interface ng Listahan ay may isang legacy na tinatawag na 'vector'. Ginagamit ng isang vector ang interface ng Listahan at sa gayon ay pinanatili nito ang pagkakasunud-sunod ng pagpapasok. Dahil sa pagsisikap ng pag-synchronize, ang pagganap ng vector sa mga karagdagan, ang mga pagtanggal at mga pag-update ay bahagyang mas mabagal.

  • Pagpapatupad:

Ilang ng pagpapatupad ng Set ay HashSet, LinkedHashSet, at TreeSet. Ang ilan sa mga pagpapatupad ng Listahan ay kinabibilangan ng ArrayList at LinkedList.

Kailan gumamit ng Set & List?

Ang paggamit ng Set at Listahan ay pulos nakasalalay sa pangangailangan ng pagpapanatili ng order sa pagpapasok. Tulad ng natutunan namin na ang isang Set ay hindi kailanman nagpapanatili ng pagkakasunud-sunod ng pagpapasok, maaari itong magamit kapag ang order ay mas maliit na kahalagahan. Sa katulad na paraan, gamitin ang Listahan kapag kailangan mo upang mapanatili ang pagkakasunud-sunod ng pagpapasok pati na rin.

Mga pagkakaiba sa isang pormularyo sa talaan:

S.No Mga pagkakaiba sa Itakda Listahan
1. Pagbubukod ng Order Pinananatili nito ang pagpasok ng order. Ang unang ipinasok ay nananatiling sa unang lugar at sa gayon ay hindi isinasaalang-alang ang halaga nito. Hindi nito pinanatili ang pagpasok ng order.
2. Paraan Ginagamit nito ang mga pamamaraan tulad ng add (), clear (), naglalaman (), isEmpty (), alisin () at laki (). Ginagamit nito ang mga pamamaraan tulad ng add (), addAll (), get (), lastIndexOf (), ListIterator () na may o walang parameter, alisin (), set (), at subList ().
3. Mga Duplicate Hindi kailanman pinapayagan ang mga duplicate at sa kaso ng mga pagtatanghal, ang halaga ay makakakuha ng overwritten. Pinapayagan nito ang mga duplicate.
4. Walang halaga Maaari lamang itong magkaroon ng isang null na halaga sa maximum. Maaari itong magkaroon ng anumang bilang ng null halaga.
5. Paggamit ng Iterator () & listIterator () Ginagamit lamang nito ang iterator ng paraan (). Ginagamit nito ang parehong iterator () pati na rin ang listIterator ().
6. Presensya ng Legacy Class Walang klase ng Legacy. Ito ay bilang tinatawag na Legacy class bilang isang vector.
7. Pagpapatupad Ilang ng pagpapatupad ng Set interface ay HashSet, LinkedHashSet at Tree Set. Ilang ng pagpapatupad ng interface ng Listahan ang LinkedList at ArrayList.

Sana, isinama natin ang bawat posibleng pagkakaiba sa pagitan ng Set at ng Listahan. Kung sa palagay mo ay wala na kami ng isang bagay, mangyaring ipaalam sa amin.