Dallimi ndërmjet numërimit dhe përsëritësit

Dallimi ndërmjet numërimit dhe përsëritësit
Dallimi ndërmjet numërimit dhe përsëritësit

Video: Dallimi ndërmjet numërimit dhe përsëritësit

Video: Dallimi ndërmjet numërimit dhe përsëritësit
Video: Leksion 4 - DB1 - Modelimi i marrëdhënieve relacionale (ER) 2024, Korrik
Anonim

Enumeration vs Iterator

Ka shumë struktura të dhënash që veprojnë si koleksione në Java si Vektorët, tabelat Hash dhe klasat që zbatojnë Kornizën e Koleksioneve Java (p.sh. HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap dhe LinkedHashSet). Ka shumë mënyra për të përsëritur përmes elementeve individuale të objekteve në Java. Java ofron dy ndërfaqe për ta bërë këtë detyrë më të lehtë. Enumeration dhe Iterator janë dy ndërfaqet që gjenden në paketën java.util që ofrojnë funksionalitet për të numëruar përmes sekuencave ose objekteve me një grup artikujsh. Regjistruesi u prezantua në JDK 1.0 dhe Iterator i cili u prezantua në JDK 1.2 kopjon praktikisht funksionalitetin e Enumeratorit (brenda Kornizës së Koleksioneve).

Çfarë është Enumerimi?

Enumeration është një ndërfaqe publike në Java, e prezantuar në JDK 1.0, e cila ofron aftësinë për të numëruar përmes sekuencave të elementeve. Gjendet nën paketën java.util. Kur ndërfaqja e Enumeration zbatohet nga një objekt, ai objekt mund të gjenerojë një sekuencë elementësh. Ndërfaqja e numërimit ka dy metoda. Metoda hasMoreElements() do të testojë nëse ky numërim përmban më shumë elemente dhe nextElement() kthen elementin tjetër në sekuencë (nëse ka të paktën një tjetër për të shkuar). Me fjalë të tjera, duke thirrur në mënyrë të njëpasnjëshme nextElement(), programuesi mund të aksesojë elementët individualë në seri. Për shembull, për të printuar të gjithë elementët në Vector v1 duke përdorur Enumerator, mund të përdoret pjesa e mëposhtme e kodit.

Numërimi e=v1.elements();

While(e.hasMoreLements()){

System.out.println(e.nextElement());

}

Enumerator mund të përdoret gjithashtu për të përcaktuar rrjedhën e hyrjes në objektet SequenceInputStream.

Çfarë është Iterator?

Iterator është një ndërfaqe publike në paketën Java.util, e cila lejon përsëritjen përmes elementeve të objekteve të koleksioneve që zbatojnë kornizën e Koleksioneve (të tilla si ArrayList, LinkedList, etj.). Kjo u prezantua në JDK 1.2 dhe zëvendësoi Enumeratorin brenda Kornizës së Koleksioneve Java. Iterator ka tre metoda. Metoda hasNext() teston nëse ka elementë të mbetur në koleksion dhe metoda next() kthen elementin tjetër në seri. Metoda remove() mund të përdoret për të hequr elementin aktual nga koleksioni themelor. Për shembull, për të printuar të gjithë elementët në Vector v1 duke përdorur Iterator, mund të përdoret pjesa e mëposhtme e kodit.

Iterator i=v1.elements();

While(i.hasNext()){

System.out.println(e.next());

}

Cili është ndryshimi midis Enumeration dhe Iterator?

Megjithëse, Enumeration dhe Iterator janë dy ndërfaqet që gjenden në paketën java.util, të cilat lejojnë përsëritjen/numërimin përmes elementeve të një serie, ato kanë dallimet e tyre. Në fakt, Iterator, i cili u prezantua pas Enumeration, zëvendëson Enumeration brenda kornizës Java Collections. Ndryshe nga Enumeration, Iterator është i sigurt për dështim. Kjo do të thotë se modifikimet e njëkohshme (në koleksionin themelor) nuk lejohen kur përdoret Iterator. Kjo është shumë e dobishme në mjediset me shumë fije ku ekziston gjithmonë rreziku i modifikimeve të njëkohshme. Në rast të një modifikimi të njëkohshëm, objekti Iterator do të hedhë një Përjashtim Modifikimi Concurrent. Iterator ka emra më të shkurtër të metodave në krahasim me Enumerator. Për më tepër, iterator ka funksionalitetin shtesë të fshirjes së elementeve gjatë përsëritjes (gjë që nuk është e mundur duke përdorur Enumerator). Pra, nëse ka nevojë për të hequr elementë nga koleksioni, Iterator është i vetmi opsion që mund të merret parasysh.

Recommended: