Skillnaden mellan Iterator och Enumeration Interface i Java

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 9 Maj 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Video: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Innehåll


De tre markörerna som används för att komma åt elementen från valfri samling en efter en är Uppräkning, Iterator och ListIterator. Iterator och Enumerator är dock avsedda för att utföra samma arbete. Fortfarande skiljer de sig från varandra i en mening att Enumeration har skrivskyddad åtkomst till elementen i samlingen. På andra sidan kan Iterator läsa och ta bort elementen från samlingen. Den viktiga skillnaden mellan Iterator och Enumeration är att Uppräkning kan inte tillämpas på samlingsklasserna, det är endast tillämpligt på gamla klass. Å andra sidan iterator är tillämplig på samlingsklasserna, det kallas därför en universell markör. Låt oss lära oss mer skillnad mellan Iterator och Enumeration med hjälp av jämförelsetabellen nedan.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseiterator Uppräkning
GrundläggandeIterator är en universell markör eftersom den är tillämplig för alla samlingsklasser.Uppräkning är inte en universell markör eftersom den endast gäller för äldre klasser.
TillgångMed Iterator kan du läsa och ta bort elementen i samlingen.Med hjälp av Enumeration kan du bara läsa elementen i samlingen.
metoderpublic boolean hasnext ();
offentliga objekt nästa ();
public void remove ();
public boolean hasMoreElements ();
public object nextElement ();
BegränsningIterator är en enkelriktad framåtåtkomstmarkör.
Iterator kan inte ersätta något element i samlingen.
Iterator kan inte lägga till något nytt element i samlingen.
Uppräkning är en riktning framåtåtkomstmarkören.
Uppräkning stöder endast arvskurser.
Enumeration har endast skrivskyddad åtkomst till elementen i en samling.
BetagenFör att övervinna begränsningarna för Iterator måste du välja ListIterator.För att övervinna begränsningarna i uppräkning måste du välja Iterator.


Definition av Iterator Interface

iterator är ett gränssnitt i samlingsramen. Eftersom Iterator är tillämplig på alla samlingsklasser kallas den som en universell markör. Det är markören som används för att få åtkomst till elementen i samlingen en efter en. Med Iterator kan du hämta elementen från samlingen och om du vill kan du också ta bort elementen från samlingen. Objektet med Iterator kan skapas enligt nedan.

Iterator itr = Collc.iterator ();

Variabeln itr är ett objekt för Iterator. Collc är vilket samlingsobjekt som ska cyklas eller itereras med hjälp av Iteratorns objekt (itr). De iterator () är metoden som används för att skapa ett iteratorobjekt. Det finns tre metoder i Iterator som visas nedan.

public boolean hasnext (); public Object nästa (); public void remove ();

Den första metoden hasNext () kontrollerar om samlingen har några element i den eller inte. Om samlingen har elementen kommer den att returnera sann annars kommer den att returnera falsk. Den andra metoden Nästa() används för att hämta nästa element i samlingen. Den tredje metoden avlägsna() används för att radera elementen från samlingen.


Iterator kan resa i en samling endast i framåtriktningen, den kan inte röra sig tillbaka under resan. Iterator kan ta bort elementet från samlingen men har inte förmågan att ersätta något befintligt element med ett nytt element, och det kan inte heller lägga till något nytt element i samlingen. För att övervinna dessa begränsningar kan du gå till ListIterator-gränssnittet.

Definition av Enumeration Interface

Uppräkning är gränssnittet som är tillämpligt på arv klasser, och det kan inte tillämpas på någon samlingsklass. Därför är det inte en universell markör. Enumeration hämtar elementet (objektet) från samlingen en efter en. Enumeration-objekt har skrivskyddad åtkomst till elementen i samlingen. Uppräkningsobjekt kan inte ändra något element från samlingen. Låt oss se hur man skapar uppräkningsobjekt, titta.

Uppräkning er = Vect.elements ();

Variabeln er är ett objekt för uppräkning. De vect är objektet för vektorklassen som måste korsas av objektet (er) för uppräkning. Metoden element() används för att skapa ett objekt av Enumeration. Det finns bara två metoder i gränssnittet Enumeration som visas nedan.

public boolean hasMoreElements (); public nextElement ();

Den första metoden hasMoreElements () används för att kontrollera statusen för samlingen om den har elementen i den eller den är tom. Om samlingen har elementen har metoden hasMoreElements () return true annars returnerar falskt. Den andra metoden nextElement () används för att hämta elementen från samlingen en efter en. När korsningen är klar kastas metoden NextElement () NoSuchElementException. Enumeration-objektet rör sig bara i framåtriktningen. Det kan inte lägga till eller ta bort eller ersätta något element i samlingen. För att övervinna dessa begränsningar i uppräkningen måste du välja Iterator.

  1. Den viktigaste skillnaden mellan Iterator och Enumeration är att Iterator är en universell markör, som kan användas för att iterera alla samlingsobjekt. Å andra sidan används uppräkningen endast för att kryssa föremål från arvsklass.
  2. Enumeration-objekt har endast skrivskyddad åtkomst till elementen i samlingen. Men Iterators objekt kan läsa och ta bort elementen från samlingen.
  3. Det finns två metoder för iterator en för att kontrollera statusen för samling och en för att hämta elementen från samlingen. Förutom numreringsmetoder har Iterator ytterligare en metod för att ta bort elementen från samlingen.
  4. Begränsningar för uppräkning är att det är en riktning framåt i en riktning, den har skrivskyddad åtkomst och den kan tillämpas på samlingsklasserna. Å andra sidan kan Iterator inte ersätta eller lägga till något nytt element i samlingen och gilla Enumeration dess också framåtriktade markör.
  5. Begränsning av uppräkning löses av Iterator och begränsningar av Iterator löses av ListIterator.

Slutsats:

Idag används Iterator och ListItertaor-markören eftersom de är den universella markören och är mycket effektiva än Enumeration.