H IL F E! Informatik Bug🤯!?
Java
habe eine klasse PriorityQueue. Diese speichert Objekte der Klasse QueueInhalt in einem Array namens queueinhalte. Die QueueInhalte - Objekte wiederrum speichern jeweils einen Verweis auf ein ein Objekt der Klasse ContentTypePerson.
Der Code der Klasse QueueInhalt ist kurz:
Das hier ist die add - Methode aus der PriorityQueue, jedenfalls der Teil für den Fall, wenn die Priorität des ContentTypePerson - Objektes (, wleches ja widerrum in einem QueueInhalt - Objekt gespeichert ist,) größer als Die des im Array am vordersten gelegenen Elements ist.
Es gibt auch noch eine Methode in der Klasse PriorityQueue, um den ArrayInhalt und so auszugeben (ich glaube, da liegt der folgende Fehler aber nicht):
Jetzt kommts: Ich habe ein Array der Größe 2 erstellt, ein Objekt ContentTypePerson mit dem Namen "A" erstellt und ihm beim Aufrufen der add Methode die Priorität 3 gegeben.
Beim Aufrufen der Methode gibInhalteDesArraysAus() kommt dann ensprechend:
Dann adde ich noch ein ContentTypePersonPerson - Objekt namens "B", diesmal mit der Priorität 4, damit der oben gezeigte Teil der add - Methode ausgeführt wird.
Doch dann wird ausgegegeben:
anstatt:
Inhalte: QueueInhalt@d54b68 (Name: B Priorität: 44) | QueueInhalt @17e26a8 (Name: A Priorität: 43)
HILFE! Wo ist der Bug? Ich sitze schon seit zwei Stunden hier fest! Sorry für so viele Bilder Code, ich bin mir nicht sicher in welchem Codeteil der Fehler liegen könnte
Echt, wer mir weiterhelfen könnte, verdient 1200000 Danke und Hilfreich
2 Antworten
Bitte Codes als CodeBlock posten, nicht als Bild, danke.
Was soll das sein?
Queue[0] = 1
Queue[1] = 2
Queue[2] = LEER
Queue[1] tust du in Queue[2]
Queue[2] tust du in Queue[1]
Warum? Es soll doch aufrücken und so habe ich dir das bei der Frage davor auch nicht beschrieben …
Und dein Code ist unsauber. Das Abschreiben aus dem Bild ist damit sehr schwer, weil man immer die Stelle finden muss:
Also ich glaube da liegt ein Fehler. Schau dir das nochmal an und mach es so, wie ich es gesagt hatte im Beitrag zuvor … So wie ich das sehe, tauscht du nämlich nur Wert 2 und 3 zum Beispiel miteinander, anstatt dass die aufrücken 🤔
Und bitte kein äöü schreiben, wenn du schon deutsch unterwegs bist, was man eigentlich nicht tut.
for (int i = arraylaengeminuseins - 1; i < 0; i--)
Wird niemals funktionieren.
arraylaengeminuseins ist 3 und minus eins ist 2. Somit ergibt i < 0 niemals true und die Schleife läuft nicht und wird übersprungen
Das war ein Danke, aber ich bekomme doch 1200000 dachte ich? 😮🙂
Das geht leider nicht. Wenn ich so weit bin könnte ich mehrere GF Accounts automatisch erstellen lassen und dir ein Danke und Hilfreich geben lassen.
for (int i=/*positiver Wert*/; i<0; ...
Diese Schleife wird nie durchlaufen.
Muss dann i > 0? (Entschuldigung, bin ganz blöd, hab den ganzen Tag schon Informatik gemacht)
Jetzt funktionierts:
i >= 0
"Bitte Codes als CodeBlock posten, nicht als Bild, danke."
Versprochen. Tut mir leid.
"Und dein Code ist unsauber."
Mache ich auch noch sauberer.
.- Danke😀 Für die Antwort und für die Hinweise