Kann mir jemand kurz die Vorteile des Iterators erklaeren..?

Status
Nicht offen für weitere Antworten.

sirbender

Top Contributor
Irgendwie finde ich Iterator beim Handling umstaendlicher als z.B. ueber den Index einer Collection per Loop zu iterieren.

Kann mir jemand erklaeren warum immer noch Iterators verwendet werden? Hat es irgendwelche Vorteile die mir gerade nicht auffallen?

Ist es schneller?
 
G

Gast

Gast
Was ist an:
for(String s : stringList) { s.o.p(s); }
umständlich?

Wenn man keinen Index braucht, wieso dann einen Index nutzen?
 
B

bygones

Gast
ich vermute mal er meinte
Java:
Iterator<String> iterator = stringList.iterator();
while (iterator.hasNext()) {
   String s = iterator.next();
}
 

sirbender

Top Contributor
Was ist an:
for(String s : stringList) { s.o.p(s); }
umständlich?

Wenn man keinen Index braucht, wieso dann einen Index nutzen?

Nehmen wir an, du benutzt ueberall Iteratoren und spaeter wird klar, dass du auch einen Index braeuchtest in einigen Faellen. Bei einer List hast du die Moeglichkeit dann auch Indices zum Iterieren zu nutzen.

Wie gesagt, ich versuche nur zu verstehen wo eher Iteratoren genutzt werden sollten, und wo die Vorteile liegen? Oder gibt es gar keine? Kann man waehrend dem Iterieren vielleicht Elemente entfernen ohne Nebeneffekte?

Irgendeinen Vorteil muss es doch geben, ansonsten haette man doch gar nicht diese Redundanz.

Mit Iteratoren meinte ich Iterator.
 
S

SlaterB

Gast
Iteratoen kann man auch bei Sets verwenden, wo es nicht direkt Indexe gibt,

und in einer (schlecht cachenden) LinkedList beginnt jede Suche per Index beim 0ten Element,
wenn du da die Elemente 1.000.017-1.000.032 mit Index aufrufst dauert allein das schon ne Weile,
während ein (gut implementierter) Iterator blitzschnell zum nächsten Element springt,
übrigens gar schneller als der Index-Zugriff im Array/ ArrayList
 

sirbender

Top Contributor
Iteratoen kann man auch bei Sets verwenden, wo es nicht direkt Indexe gibt,

und in einer (schlecht cachenden) LinkedList beginnt jede Suche per Index beim 0ten Element,
wenn du da die Elemente 1.000.017-1.000.032 mit Index aufrufst dauert allein das schon ne Weile,
während ein (gut implementierter) Iterator blitzschnell zum nächsten Element springt,
übrigens gar schneller als der Index-Zugriff im Array/ ArrayList

Ah, ok. Ist eine Frage der Performance. Ich verstehe zwar nicht warum vor allem die Iteration ueber ein Array per Index laenger dauern soll aber ich glaub dir mal.

Was meintest du mit Suche per Index in LinkedLists? Wie laeuft die Suche ab und warum gibt es ueberhaupt eine Suche? Reicht der Index nicht aus um direkt den Speicherbereich anzuspringen?
 
S

SlaterB

Gast
> Ich verstehe zwar nicht warum vor allem die Iteration ueber ein Array per Index laenger dauern soll aber ich glaub dir mal.
gemeint war: Iterator über LinkedList ist schneller als Indexzugriff über Array

-----

verkettete Liste kannst du im Internet nachschlagen,
da hat man in der Grundstellung nur Links auf das erste und vielleicht letzte Element, der Rest ergibt sich per Durchlaufen,

'Index -> Speicherbereich anspringen' ist quasi die Definition eines Array, also das Gegenteil einer verketteten Liste
 

sirbender

Top Contributor
> Ich verstehe zwar nicht warum vor allem die Iteration ueber ein Array per Index laenger dauern soll aber ich glaub dir mal.
gemeint war: Iterator über LinkedList ist schneller als Indexzugriff über Array

-----

verkettete Liste kannst du im Internet nachschlagen,
da hat man in der Grundstellung nur Links auf das erste und vielleicht letzte Element, der Rest ergibt sich per Durchlaufen,

'Index -> Speicherbereich anspringen' ist quasi die Definition eines Array, also das Gegenteil einer verketteten Liste

Also per Index ueber eine LinkedList zu iterieren ist Performance-Selbstmord? Sollte man dann nicht gleich eine ArrayList benutzen, oder verpass ich grade was? Im neuen foreach Loop wird nehme ich mal ein Iterator benutzt.

Jedenfalls danke fuer die Antworten. Ich behalte das Performance-Argument im Hinterkopf.
 
S

SlaterB

Gast
immer alles aus dem Vorpost zu zitieren ist Mord,

bei kleinen LinkedLists merkt man das iterieren nicht,

bei ArrayList hat man dagegen beim Einfügen das Problem,
wenn in in einer 1 Mio.-Liste ein Element in der Mitte dazukommt, müssen 500.000 verschoben werden, LinkedList hat damit dagegen keine Probleme,
die freie Verlinkung erlaubt beliebige Umbauten,

alles hat Vor- und Nachteile,
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
marcooooo Kann mir jemand das Beispiel kurz erklären so ungefähr:/ Java Basics - Anfänger-Themen 7
T Kann jemand kurz das Programm testen? Java Basics - Anfänger-Themen 13
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
U Kann mir jemand helfen? Java Basics - Anfänger-Themen 2
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
C Kann mir jemand sagen warum public void unzulässig ist? Java Basics - Anfänger-Themen 2
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
C Kann mir jemand helfen was mit diesen Fehlern gemeint ist ? Java Basics - Anfänger-Themen 12
M Kennt jemand die richtige Lösung? Java Basics - Anfänger-Themen 7
HeiTim Kann mir Jemand helfen ? Java Basics - Anfänger-Themen 11
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
M BerechneEtwas Weiss jemand woran es liegt Java Basics - Anfänger-Themen 8
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Kann mir jemand hier die Logik vermitteln? Java Basics - Anfänger-Themen 3
M Kann mir jemand die Logik erklären? Java Basics - Anfänger-Themen 1
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
A Kann mir Jemand erklären wie ich das iteriere? Java Basics - Anfänger-Themen 4
G Fehlersuche-kann mir jemand helfen? Java Basics - Anfänger-Themen 46
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
Y kann jemand die Terme mit Zahlen schreiben ?? Java Basics - Anfänger-Themen 4
R Kann mir hier jemand weiterhelfen? Java Basics - Anfänger-Themen 1
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
A Kann mir jemand dieses Programm erklären? Java Basics - Anfänger-Themen 1
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
B Kann mir jemand erklären, warum hier dreimal was ausgegeben wird und nicht nur zweimal? Java Basics - Anfänger-Themen 16
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
E Input/Output Kann jemand meinen Code durchschauen? Java Basics - Anfänger-Themen 4
T Kann mir jemand sagen, was bei folgender for-Schleife passiert? Java Basics - Anfänger-Themen 1
F Versteht das jemand? -Java Java Basics - Anfänger-Themen 6
J TabelView - Kann mir jemand die Sequenz genau erklären ? Java Basics - Anfänger-Themen 2
K Könnte mir jemand erläutern, was der autor damit meint? Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
A Hat jemand einen ratschlag, wie java beim replaceALL eine geschweifte klammer erkennt ? Java Basics - Anfänger-Themen 5
H Java Hamster - kann mir jemand weiterhelfen? Java Basics - Anfänger-Themen 4
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Java Basics - Anfänger-Themen 4
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
R weiß jemand warum Java diesen Fehler ausspuckt? "Variable might not hav been initialized" Java Basics - Anfänger-Themen 4
R kann mir jemand erklären was hier gemacht wurde? Java Basics - Anfänger-Themen 10
I kann mir jemand weiterhelfen, wo liegen die Fehler? Java Basics - Anfänger-Themen 3
E Kann mir jemand sagen was hier falsch ist? Java Basics - Anfänger-Themen 6
gonzoradio Hat jemand Erfahrung mit javavideokurs.de Java Basics - Anfänger-Themen 5
D Kann mir vielleicht jemand die reflexive Assoziation erklären? Java Basics - Anfänger-Themen 2
C Hat jemand Ahnung zum GCJ(Gnu Compiler for Java) Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
S Kennt jemand die Default-Cache Zeit beim Java-Plugin? Java Basics - Anfänger-Themen 2
B könnte nochmal jemand über mein Projekt schauen? Java Basics - Anfänger-Themen 4
S unschöne schleifen.jemand ne bessere idee Java Basics - Anfänger-Themen 4
K Kennt jemand ein gutes Tutorial für Wertübergabe? Java Basics - Anfänger-Themen 4
G Kann mir jemand das erklären? Java Basics - Anfänger-Themen 11
S Hat jemand eine Idee warum die JLabels nicht mehr farbig Java Basics - Anfänger-Themen 7
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3
G Nutzt Jemand JCalendar? Java Basics - Anfänger-Themen 3
C Kann jemand mir helfen? Java Basics - Anfänger-Themen 15
N Kann mir bitte jemand helfen? Java Basics - Anfänger-Themen 6
M Kann mir jemand erklären, wie "static" funktionier Java Basics - Anfänger-Themen 2
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
M Threads Thread ist nur kurz interrupted, dann wieder nichtmehr Java Basics - Anfänger-Themen 6
K Programm ohne Threads kurz Pausieren Java Basics - Anfänger-Themen 4
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
J Brauch kurz hilfe bei nem kleinem Zahlenschloss Programm. :) Java Basics - Anfänger-Themen 12
manunana89 Programm kurz pausieren??? Java Basics - Anfänger-Themen 6
H Kann das mal kurz einer ausführen ^^ . thx Java Basics - Anfänger-Themen 10
G long zu kurz Java Basics - Anfänger-Themen 5
V Grafik ist nur ganz kurz sichtbar Java Basics - Anfänger-Themen 3
M Kompositum Vorteile Java Basics - Anfänger-Themen 4
F Thread Koordination (Vorteile/Nachteile) Java Basics - Anfänger-Themen 0
Povlsen84 Vorteile von MessageFormat Java Basics - Anfänger-Themen 5
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
G Neuerungen Java 6 bzw. Vorteile Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben