Avatar billede burningice Nybegynder
23. maj 2005 - 18:49 Der er 2 kommentarer og
1 løsning

Enumerator vs Iterator

De fleste er nok bekendt med at .Net undersøtter den dejlige foreach-syntaks, som under kølerhjelmen benytter sig af en Enumerator.

Men nu har jeg studset lidt over, hvorfor at MS har valgt at kalde det et enumerator når at det i Java hedder en iterator.

Ved at enumerere må vel forstås at man kører igennem i numerisk rækkefølge, 1-2-3-4-5, mens at man, når man iterere, ikke går efter nogen logisk indexering.

Man itererer f.eks. over de forskellige keys i en HashTable.

Men nu er det bare sådan, at et IEnumerator-object, ikke behøves at gå slavisk efter nummeringsindekseringen. Man kan f.eks. hoppe fra index 1 til 6 og tilbage til 4 (selvom det nok vil give en ret træls foreach-løkke.

Så mit spørgsmål er egentlig. Hvorfor har MS konsekvent valgt at bruge ordet Enumerator og Enumerable, når det i Java hedder Iterator.
Avatar billede arne_v Ekspert
23. maj 2005 - 19:01 #1
Faktisk startede Java med at have Enumeration fra Java 1.0.

I Java 1.2 opfandt man så Iterator.

Citat fra docs:

NOTE: The functionality of this interface is duplicated by the Iterator interface. In addition, Iterator adds an optional remove operation, and has shorter method names. New implementations should consider using Iterator in preference to Enumeration.

GOF pattern hedder Iterator.

C++ kalder det også iterator.

Bedste bud jeg kan komme på er at:
  MS Java kom kun i version 1.0 og 1.1
  Anders Hejlsberg arbejdede på MS Java
måske huskede han enumerator !?
Avatar billede burningice Nybegynder
01. juni 2005 - 16:27 #2
det var ikke mange bud der var på det... men har ikke kunne finde noget selv omkring det, men det lyder da meget sandsynligt :)

smid et svar
Avatar billede arne_v Ekspert
22. juni 2005 - 17:32 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester