Iterieren über eine Liste

Status
Nicht offen für weitere Antworten.
B

Bernd1983

Gast
hallo, mir bereitet eine Methode Kopfzerbrechen.

Code:
class Iterator{

boolean hasNext(){

return(root!=null) &&

(current==null||current.next!=null);

}

}


Kann ma die so Methode so schreiben, dass auch ich sie verstehe. Dass current==null versteh ich überhaupt nicht.????????????

gruss

bernd
 

Ark

Top Contributor
Code:
(root!=null) && (current==null||current.next!=null)
Wenn root!=null falsch ist, ist && auch immer falsch und bei diesem Operator (&&) wird die rechte Seite nicht mehr ausgewertet.
Falls aber root!=null wahr ist, wird die rechte Seite ausgewertet. Auf der linken Seite von && steht ja jetzt true, das neutrale Element von &&, und hat deswegen keinen Einfluss mehr auf das Ergebnis.

Nun zur rechten Seite, die ja, wie bereits gesagt, nur ausgewertet wird, falls root!=null ist: Zuerst wird current==null überprüft und … hey, das sieht ja echt seltsam aus. :shock: Ich kann mir jetzt bestenfalls vorstellen, dass man sich gedacht hat, dass ja, falls current==null falsch ist, current ja nicht mehr null sein kann, deswegen ja erst die rechte Seite von || ausgewertet wird, wo ja jetzt garantiert ist, dass current!=null ist. Aber da wäre ja && bereits wahr, wenn nur current==null wahr ist; seltsam …

Mal gucken, ich wende jetzt mal de-Morgan an:
Code:
!((root==null) || !(current==null||current.next!=null))
Jetzt noch einmal auf die rechte Seite:
Code:
!((root==null) || (current!=null&&current.next==null))
Hm, jetzt lese ich daraus, dass schon mal false zurückgegeben wird, wenn root==null ist (wie schon oben ersichtlich), außerdem wird false zurückgegeben, wenn zwar current!=null ist, gleichzeitig aber current.next==null ist, d. h. wenn zwar current definiert ist, aber nicht current.next.

Mir scheint das jetzt etwas klarer, obwohl …

Also ich würde eher so etwas schreiben, alles andere würde für mich keinen Sinn ergeben:
Code:
(root!=null) && (current!=null) && (current.next!=null)

Das ist echt sonderbar. Wo kommt denn das vor?

Ark
 
B

Bernd1983

Gast
@ark

das kommt vor in einem uni-skript zu entwurfsmuster iterator bei Listen.

ja echt komisch
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
G mit for each über Map iterieren :bahnhof: Java Basics - Anfänger-Themen 3
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
S Durch HashMap iterieren Java Basics - Anfänger-Themen 8
P Iterieren mit einer Foreach in Lambdaschreibweise und Counter. Java Basics - Anfänger-Themen 1
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
T OOP Zwei Klassen Testen (Arrary Iterieren) Java Basics - Anfänger-Themen 6
feinperligekohlensaeure Arraylisten-Namen iterieren.. wie ? Java Basics - Anfänger-Themen 39
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
N Durch Objekte iterieren? Java Basics - Anfänger-Themen 3
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
A Über Jahr iterieren, Freitag der 13. Java Basics - Anfänger-Themen 2
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
A Array iterieren Java Basics - Anfänger-Themen 20
K For Each Schleife wieder von Beginn an iterieren Java Basics - Anfänger-Themen 12
V Hashmap Iterieren Java Basics - Anfänger-Themen 4
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
P Variablen ArrayList mit Bedingung iterieren Java Basics - Anfänger-Themen 2
B Hashset iterieren problem Java Basics - Anfänger-Themen 3
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
P Über HashMap iterieren -> NullPointerException Java Basics - Anfänger-Themen 2
J Collection ArrayList und mit erweitertem for iterieren Java Basics - Anfänger-Themen 7
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
G Durch Liste iterieren und nachkommastellen runden Java Basics - Anfänger-Themen 9
D HashMap iterieren Java Basics - Anfänger-Themen 7
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben