Fehler im Java Handbuch?

Status
Nicht offen für weitere Antworten.

ToKaM OnE

Aktives Mitglied
Ich bin eigentl. noch noob, aber etwas kam mir komisch vor, warscheinlich weil ich noch so ein noob bin...

Aber ich verstehe es nicht.

Und zwar im Listing 15.4: Die Klasse LinkedQueue:


001 /* LinkedQueue.java */
002
003 import java.util.*;
004
005 /**
006 * Die folgende Klasse realisiert eine Queue-Collection
007 * auf der Basis einer einfach verketteten linearen Liste.
008 * Die LinkedQueue kann im Prinzip beliebig viele Elemente
009 * aufnehmen. Die Laufzeiten der Einfüge- und Löschmethoden
010 * sind O(1). Der von iterator() gelieferte Iterator
011 * besitzt KEINE Implementierung der Methode remove().
012 */
013 public class LinkedQueue
014 implements Queue
015 {
016 protected ElementWrapper first;
017 protected ElementWrapper last;
018 protected int count;
019
020 public LinkedQueue()
021 {
022 first = last = null;
023 count = 0;
024 }
025
026 public boolean add(Object o)
027 {
028 if (count == 0) {
029 //insert first element
030 first = new ElementWrapper();
031 last = first;
032 count = 1;
033 } else {
034 //insert element into non-empty queue
035 last.next = new ElementWrapper();
036 last = last.next;
037 ++count;
038 }
039 last.element = o;
040 last.next = null;
041 return true;
042 }
043
044 public Object retrieve()
045 throws NoSuchElementException
046 {
047 if (count <= 0) {
048 throw new NoSuchElementException();
049 }
050 ElementWrapper ret = first;
051 --count;
052 first = first.next;
053 if (first == null) {
054 last = null;
055 count = 0;
056 }
057 return ret.element;
058 }
059
060 public int size()
061 {
062 return count;
063 }
064
065 public void clear()
066 {
067 while (first != null) {
068 ElementWrapper tmp = first;
069 first = first.next;
070 tmp.next = null;
071 }
072 first = last = null;
073 count = 0;
074 }
075
076 public Iterator iterator()
077 {
078 return new Iterator()
079 {
080 ElementWrapper tmp = first;
081
082 public boolean hasNext()
083 {
084 return tmp != null;
085 }
086
087 public Object next()
088 {
089 if (tmp == null) {
090 throw new NoSuchElementException();
091 }
092 Object ret = tmp.element;
093 tmp = tmp.next;
094 return ret;
095 }
096
097 public void remove()
098 {
099 throw new UnsupportedOperationException();
100 }
101 };
102 }
103
104 /**
105 * Lokale Wrapperklasse für die Queue-Elemente.
106 */
107 class ElementWrapper
108 {
109 public Object element;
110 public ElementWrapper next;
111 }
112 }

so erschien mir zeile 70 sinnvoller:

Code:
[070       tmp=null;



könnt ihr mir die Methode erklären, oder hab ich da etwa nen Fehler entdeckt?
 

ToKaM OnE

Aktives Mitglied
Code:
065 public void clear() 
066 { 
067 while (first != null) { 
068 ElementWrapper tmp = first; 
069 first = first.next; 
070 tmp.next = null; 
071 }

Die Methode durchläuft doch nicht die ganze verkettete liste, wie beabsichtigt oder ???

start --> first != null --> true

068 ElementWrapper tmp = first;
069 first = first.next;
070 tmp.next = null;

2. durchlauf -->first != null --> false
--> ende

wenn tmp = first ist
dann ist tmp.next doch first.next
wenn first = first.next zugewiesen wird
und tmp.next=null ist, dann ist first == null und nicht !=null beim 2. durchlauf oder?


mit 070 tmp.next = null; wird first = null, da first auf first.next gesezt wurde
 

ToKaM OnE

Aktives Mitglied
Ok, habe ne ausgabe in die schleife gepackt, und sie wird tatsächlich oft genug durchlaufen.

Aber wieso?


Eigentl. müsste first doch nach dem 1. durchlauf null sein, ist es aber nicht?

ich glaube es hängt damit zusammen dass durch refernzvariable=null;
nicht in die speicheradresse gelöscht wird, sondern der zeiger auf sie.

wenn ich eine referenzvariable einer anderen zuweise, müsste somit der zeiger der einen in die andere kopiert werden ?

Somit werden glaube ich alle zeiger auf die ElementWrapper gelöscht, damit der GarbageCollector die Objekte (bzw. elemente) die sie halten löschen kann, sofern nicht noch eine andere variable auf sie zeigt.

Wenn man mit der anweisung
referenzvariable = null;
aber nur den zeiger löscht und nicht das objekt, hätte man dann nicht auch einfach bei der Methode clear nur

Code:
first = last = null; 
count = 0;
schreiben können?

denn wenn first = null ist, dann samelt es doch der Garbage Collector ein oder?
und dann ist first.next auch null und dann müsste es doch auch gelöscht werden?


//Rechtschreibung (besonders Groß- u. Kleinschreibung) nicht mehr beachten bitte :D es ist immerhin schon halb 12 ;D ) :wink:
 

Wildcard

Top Contributor
Call by value != call by reference
Es gibt keine Pointer in Java, sondern nur Kopien von Referenzen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
M Fehler bei Remoteinstallation von Java Allgemeine Java-Themen 5
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
D Fehler im Java Code Allgemeine Java-Themen 22
P Compiler-Fehler Fehler in Java ?? Allgemeine Java-Themen 9
T Fehler java.net.bindException Allgemeine Java-Themen 7
P Fehler beim Programmstart: java.lang.NoClassDefFound Allgemeine Java-Themen 12
D Java Error / Fehler Allgemeine Java-Themen 2
J Fehler: java.lang.NullPointerException Allgemeine Java-Themen 2
J Folgender Fehler: java.lang.NullPointerException Allgemeine Java-Themen 4
G java application stub / fehler Allgemeine Java-Themen 2
S Fehler bleiben - Java frisst sich ins System? Allgemeine Java-Themen 17
M Fehler beim Start des Chat-Applets von java-forum.org Allgemeine Java-Themen 10
W Java verursacht Grafik-Fehler? Allgemeine Java-Themen 3
M Java Anwendunng per *.bat starten -> Fehler / In Eclipse Allgemeine Java-Themen 2
R Neustart / Fehler bei Java-Installation Allgemeine Java-Themen 3
T Fehler bei Java-Installation Allgemeine Java-Themen 2
R Fehler in WindowsXP oder Java? - double in int konvertieren Allgemeine Java-Themen 10
G Fehler bei Java (JCreator) plz help ! Allgemeine Java-Themen 4
D Java-"Fehler" Allgemeine Java-Themen 3
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben