Pagkakaiba sa pagitan ng Iterator at Interumer Interface sa Java

May -Akda: Laura McKinney
Petsa Ng Paglikha: 2 Abril 2021
I -Update Ang Petsa: 2 Hulyo 2024
Anonim
Pagkakaiba sa pagitan ng Iterator at Interumer Interface sa Java - Teknolohiya
Pagkakaiba sa pagitan ng Iterator at Interumer Interface sa Java - Teknolohiya

Nilalaman


Ang tatlong mga cursor na ginagamit upang ma-access ang mga elemento mula sa anumang koleksyon nang paisa-isa Enumeration, Iterator at ListIterator. Bagaman, ang Iterator at Enumerator ay inilaan para sa pagsasagawa ng parehong gawain. Gayunpaman, naiiba ang mga ito sa bawat isa sa isang kamalayan na binasa ng Enumeration-access lamang sa mga elemento sa koleksyon. Sa kabilang panig, maaaring basahin ni Iterator pati na rin alisin ang mga elemento sa koleksyon. Ang mahalagang pagkakaiba sa pagitan ng Iterator at Enumeration ay ang Pagpapalit hindi mailalapat sa mga klase ng koleksyon na nalalapat lamang ito sa mga klase ng legacy. Sa kabilang banda, ang Iterator naaangkop sa mga klase ng koleksyon samakatuwid, tinukoy ito bilang isang unibersal na cursor. Alamin natin ang higit pang pagkakaiba sa pagitan ng Iterator at Enumeration 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 PaghahambingIterator Pagpapalit
PangunahingAng Iterator ay isang unibersal na cursor dahil naaangkop ito para sa lahat ng mga klase ng koleksyon.Ang enumerasyon ay hindi isang unibersal na cursor dahil nalalapat lamang ito sa mga klase ng pamana.
Pag-accessGamit ang Iterator maaari mong basahin at alisin ang mga elemento sa koleksyon.Gamit ang Enumeration maaari mo lamang basahin ang mga elemento sa koleksyon.
Paraanpampublikong boolean hasnext ();
mga pampublikong bagay sa susunod ();
pampublikong walang bisa na alisin ();
pampublikong boolean hasMoreElements ();
pampublikong object susunodElement ();
LimitasyonAng Iterator ay isang unidirectional pasulong na access access.
Hindi mapalitan ng Iterator ang anumang elemento sa koleksyon.
Ang Iterator ay hindi maaaring magdagdag ng anumang bagong elemento sa koleksyon.
Ang enumerasyon ay unidirectional pasulong na access access.
Suporta lamang sa enumerasyon ang mga klase ng legacy.
Ang enumerasyon ay nabasa lamang-access lamang sa mga elemento sa isang koleksyon.
PagtagumpayUpang malampasan ang mga limitasyon ng Iterator dapat kang pumili para sa ListIterator.Upang mapagtagumpayan ang mga limitasyon ng Enumeration dapat kang pumili ng Iterator.


Kahulugan ng Iterator Interface

Iterator ay isang interface sa balangkas ng koleksyon. Bilang naaangkop ang Iterator sa lahat ng mga klase ng koleksyon, tinukoy ito bilang isang unibersal na cursor. Ito ang ginamit na cursor upang ma-access ang mga elemento sa koleksyon nang paisa-isa. Gamit ang Iterator, maaari mong makuha ang mga elemento mula sa koleksyon at kung nais mo maaari mo ring alisin ang mga elemento sa koleksyon. Ang bagay ng Iterator ay maaaring nilikha tulad ng ibinigay sa ibaba.

Iterator itr = Collc.iterator ();

Ang variable it ay isang bagay ng Iterator. Si Collc ay anumang bagay na koleksyon na kung saan ay mai-cycled o iterated sa pamamagitan ng paggamit ng object (itr) ng Iterator. Ang tagapagpatay () ay ang pamamaraan na ginamit upang lumikha ng isang bagay ng iterator. Mayroong tatlong mga pamamaraan sa Iterator tulad ng ipinakita sa ibaba.

pampublikong boolean hasnext (); susunod na Object sa publiko (); pampublikong walang bisa na alisin ();

Ang unang paraan hasnext () sinusuri kung ang koleksyon ay may anumang mga elemento sa loob nito o hindi. Kung ang koleksyon ay may mga elemento, babalik ito sa totoo lang ay magbabalik mali. Ang pangalawang pamamaraan susunod () ay ginagamit upang makuha ang susunod na elemento sa koleksyon. Ang pangatlong pamamaraan alisin () ay ginagamit upang tanggalin ang mga elemento mula sa koleksyon.


Maaaring maglakbay ang Iterator sa isang koleksyon lamang sa pasulong na direksyon na hindi ito makakabalik habang naglalakbay. Maaaring alisin ng Iterator ang elemento sa koleksyon ngunit walang kakayahan na palitan ang anumang umiiral na elemento na may isang bagong elemento ni maaari itong magdagdag ng anumang bagong elemento sa koleksyon. Upang malampasan ang mga limitasyong ito maaari kang pumunta para sa interface ng ListIterator.

Kahulugan ng Interface ng Enumerasyon

Pagpapalit ay ang interface na naaangkop sa pamana mga klase, at hindi ito mailalapat sa anumang klase ng koleksyon. Samakatuwid, hindi ito isang unibersal na cursor. Kinukuha ng enumerasyon ang elemento (object) mula sa koleksyon nang paisa-isa. Ang object ng enumeration ay nagbasa-access lamang sa mga elemento ng koleksyon. Ang object ng enumeration ay hindi maaaring magbago ng anumang elemento mula sa koleksyon. Tingnan natin kung paano lumikha ng bagay ng enumeration, magkaroon ng isang hitsura.

Enumeration er = Vect.element ();

Ang variable er ay isang object ng Enumeration. Ang Vect ay ang object ng klase ng vector na kailangang ma-travers ng object (er) ng Enumeration. Ang paraan elemento() ay ginagamit upang lumikha ng isang bagay ng Enumeration. Mayroong dalawang mga pamamaraan lamang sa interface ng Enumeration tulad ng ipinakita sa ibaba.

pampublikong boolean hasMoreElements (); pampublikong susunodElement ();

Ang unang paraan hasMoreElements () ay ginagamit upang suriin ang katayuan ng koleksyon kung mayroon itong mga elemento sa ito o walang laman. Kung ang koleksyon ay may mga elemento ng hasMoreElements () na paraan ibalik ang totoo ay bumalik na hindi totoo. Ang pangalawang pamamaraan susunodElement () ay ginagamit upang makuha ang mga elemento mula sa koleksyon isa-isa. Kapag nakumpleto ang pagtatapos sa susunod naEtlement () na paraan ng pagtapon NoSuchElementException. Ang object ng Enumeration ay naglalakbay lamang sa pasulong na direksyon. Hindi ito maaaring magdagdag o mag-alis o magpalit ng anumang elemento sa koleksyon. Upang mapagtagumpayan ang mga limitasyong ito ng Enumeration, dapat kang pumili ng Iterator.

  1. Ang pangunahing pagkakaiba sa pagitan ng Iterator at Enumeration ay ang Iterator ay isang unibersal na cursor, ay maaaring magamit para sa pag-iterating ng anumang object ng koleksyon. Sa kabilang banda, ang Enumeration ay ginagamit para sa traversing object of legacy class lamang.
  2. Ang object ng enumeration ay nabasa lamang-access lamang sa mga elemento sa koleksyon. Gayunpaman, ang object ng Iterator ay maaaring basahin at alisin ang mga elemento mula sa koleksyon.
  3. Mayroong dalawang mga pamamaraan ng tagapagpatay upang suriin ang katayuan ng koleksyon at isa upang makuha ang mga elemento mula sa koleksyon. Bilang karagdagan sa mga pamamaraan ng Enumeration Ang Iterator ay may isa pang pamamaraan upang alisin ang mga elemento mula sa koleksyon.
  4. Mga Limitasyon ng Pag-enumerasyon ay pasulong na unidirectional cursor, binasa lamang nito ang pag-access, at maaari itong mailapat sa mga klase ng koleksyon. Sa kabilang banda, ang Iterator ay hindi maaaring palitan o magdagdag ng anumang bagong elemento sa koleksyon at tulad ng Enumeration din nito pasulong unidirectional cursor.
  5. Ang Limitasyon ng Pag-bilang ay nalutas ng Iterator at ang mga limitasyon ng Iterator ay nalutas ng ListIterator.

Konklusyon:

Ngayon, ang Iterator at ListItertaor cursor ay ginagamit bilang sila ang unibersal na cursor at mas mahusay kaysa sa Enumeration.