różnica między Iteratorem a interfejsem wyliczania w Javie

Iterator a wyliczanietrzy Kursory używane do uzyskiwania dostępu do elementów z dowolnej kolekcji jeden po drugim to Enumeration, Iterator i ListIterator. Jednak Iterator i Enumerator są przeznaczone do wykonywania tej samej pracy. Mimo to są one różne od siebie w tym sensie, że Enumeration ma dostęp tylko do odczytu do elementów w zbiorze. Z drugiej strony Iterator może odczytywać, a także usuwać elementy z kolekcji.

istotną różnicą między Iteratorem a wyliczaniem jest to, że wyliczanie nie może być stosowane na klasach kolekcji. Z drugiej strony Iterator ma zastosowanie do klas zbiorów, stąd nazywany jest kursorem uniwersalnym. Dowiedzmy się więcej o różnicy między Iteratorem a wyliczaniem za pomocą poniższego wykresu porównawczego.

treść: Iterator Vs wyliczanie

  1. Tabela porównawcza
  2. definicja
  3. kluczowe różnice
  4. wnioski

Tabela porównawcza

podstawa do porównania Iterator wyliczenie
iterator Basic jest uniwersalnym kursorem, ponieważ ma zastosowanie do wszystkich klas kolekcji. wyliczanie nie jest uniwersalnym kursorem, ponieważ dotyczy tylko starszych klas.
dostęp używając iteratora możesz odczytać i usunąć elementy z kolekcji. używając wyliczenia możesz odczytać tylko elementy w kolekcji.
metody public boolean hasnext ();
public object next ();
Public void remove ();
public boolean hasMoreElements ();
public object nextElement();
ograniczenie Iterator jest jednokierunkowym kursorem dostępu do przodu.
Iterator nie może zastąpić żadnego elementu w kolekcji.
Iterator nie może dodać żadnego nowego elementu w kolekcji.
wyliczenie jest jednokierunkowym kursorem dostępu do przodu.
Obsługa wyliczeń tylko klasy starsze.
Enumeration ma dostęp tylko do odczytu elementów w kolekcji.
Overcome aby przezwyciężyć ograniczenia iteratora, musisz wybrać ListIterator. aby przezwyciężyć ograniczenia wyliczania, musisz wybrać Iterator.

definicja interfejsu iteratora

Iterator jest interfejsem we frameworku kolekcji. Ponieważ Iterator ma zastosowanie do wszystkich klas kolekcji, jest określany jako uniwersalny kursor. Jest to kursor używany do dostępu do elementów w kolekcji jeden po drugim. Używając iteratora, możesz pobrać elementy z kolekcji, a jeśli chcesz, możesz również usunąć elementy z kolekcji. Obiekt iteratora można utworzyć w sposób podany poniżej.

Iterator itr = Collc.iterator();

zmienna itr jest obiektem iteratora. Collc jest dowolnym obiektem kolekcji, który ma być cykliczny lub iteracyjny za pomocą obiektu (ITR) iteratora. Iterator () jest metodą używaną do utworzenia obiektu iteratora. Istnieją trzy metody w Iteratorze, jak pokazano poniżej.

public boolean hasnext();public Object next();public void remove();

pierwsza metoda hasnext() sprawdza, czy Kolekcja zawiera jakieś elementy. Jeśli Kolekcja zawiera elementy, zwróci true, else zwróci false. Druga metoda next () jest używana do pobrania następnego elementu w kolekcji. Trzecia metoda remove() służy do usuwania elementów z kolekcji.

Iterator może poruszać się w zbiorze Tylko w kierunku do przodu, nie może się cofnąć podczas podróży. Iterator może usunąć element z kolekcji, ale nie ma możliwości zastąpienia żadnego istniejącego elementu nowym elementem, ani nie może dodać żadnego nowego elementu w kolekcji. Aby przezwyciężyć te ograniczenia, możesz przejść do interfejsu ListIterator.

definicja interfejsu wyliczania

wyliczenie jest interfejsem mającym zastosowanie do starszych klas i nie może być stosowane do żadnej klasy kolekcji. Nie jest to zatem kursor uniwersalny. Enumeration pobiera element (obiekt) z kolekcji jeden po drugim. Obiekt Enumeration ma dostęp tylko do odczytu do elementów kolekcji. Obiekt Enumeration nie może zmienić żadnego elementu z kolekcji. Zobaczmy, jak stworzyć obiekt wyliczenia, spójrz.

Enumeration er = Vect.elements();

zmienna er jest obiektem wyliczenia. Vect jest obiektem klasy vector, który musi być przemierzany przez obiekt (er) wyliczenia. Metoda element () służy do utworzenia obiektu wyliczenia. Istnieją tylko dwie metody w interfejsie wyliczania, jak pokazano poniżej.

public boolean hasMoreElements();public nextElement();

pierwsza metoda hasMoreElements() służy do sprawdzania stanu kolekcji, czy zawiera ona elementy, czy jest pusta. Jeśli Kolekcja zawiera elementy, metoda hasMoreElements () zwraca true else zwraca false. Druga metoda nextElement () służy do pobierania elementów z kolekcji jeden po drugim.

po zakończeniu przechodzenia metoda nextelement() wyrzuca wyjątek NoSuchElementException. Obiekt wyliczenia porusza się tylko w kierunku do przodu. Nie może dodawać, usuwać ani zastępować żadnego elementu w kolekcji. Aby przezwyciężyć te ograniczenia wyliczenia, musisz wybrać Iterator.

kluczowe różnice między Iteratorem a wyliczaniem w Javie

  1. główna różnica między Iteratorem a wyliczaniem polega na tym, że Iterator jest uniwersalnym kursorem, może być użyty do iteracji dowolnego obiektu kolekcji. Z drugiej strony, wyliczenie jest używane tylko do przechodzenia przez obiekt klasy legacy.
  2. obiekt Enumeration ma dostęp tylko do odczytu elementów w kolekcji. Jednak obiekt iteratora może odczytywać i usuwać elementy z kolekcji.
  3. istnieją dwie metody iteratora, jedna do sprawdzania stanu kolekcji, a druga do pobierania elementów z kolekcji. Oprócz metod wyliczania Iterator posiada jeszcze jedną metodę usuwania elementów z kolekcji.
  4. ograniczenia wyliczenia to kursor jednokierunkowy do przodu, ma dostęp tylko do odczytu i może być stosowany do klas kolekcji. Z drugiej strony Iterator nie może zastąpić ani dodać żadnego nowego elementu w kolekcji i podobnie jak wyliczenie jego również do przodu jednokierunkowy kursor.
  5. ograniczenia liczby są rozwiązywane przez Iterator, a ograniczenia iteratora są rozwiązywane przez ListIterator.

wniosek

obecnie Iterator i kursor Listitaor są używane, ponieważ są uniwersalnym kursorem i są znacznie wydajniejsze niż wyliczanie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.