Software – die besten Beiträge

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

Bild zum Beitrag
Software, Schule, programmieren, Java, Informatik, Programmiersprache, Softwareentwicklung

Informatik "Rätsel"?

Programmiersprache: JavaWie stellt man bei der Datenstruktur Queue Objekte nicht hinten sondern vorne an? Also vom Code her.Kontext/Hintergrund von dieser Frage: Ich habe eine PriorityQueue. Doch dann soll plötzlich ein neues Objekt hinzugefügt werden, welches eine höhere Priorität als alle bereits in der PriorityQueue vorhandenen Objekte hat. (Da das hinzuzufügende Objekt ja die höchste Priorität hätte, müsste es ganz vorne in der PriorityQueue stehen).
Natürlich habe ich mir, bevor ich die Frage hier auf GF stelle, selbst nachgedacht, wie man das Problem lösen könnte. Bis jetzt ist mir aber nur

first = new QueueInhalt(pObject, pPriority);

eingefallen. Ich komme beim setNext(), also wenn der neue, eingefügte, Knoten QueueInhalt seinen Next - Link auf den ursprünglich an derselben Stelle (ganz vorne) gewesenen Knoten QueueInhalt setzt. (Wenn man ein Objekt hinten anstellt, schön nach FIFO halt, hätte ich kein Problem mit dem Setzen der next - links und first - links. Aber vorne anstellen? Keine Ahnung, wie das gehen soll.)
Danke und ein "Hilfreich" schonmal für eure Antworten😀

public void add(ContentTypePerson pObject, int pPriority) {
    QueueInhalt inhaltsobjekt = new QueueInhalt(pObject, pPriority);
    if (first == null) { //Wenn kein Objekt in der Queue vorhanden ist
    first = new QueueInhalt(pObject, pPriority);
    } else if (pPriority > first.getPriority()) {
    first = new QueueInhalt(pObject, pPriority);
//...?    
    }
}
Software, Schule, IT, programmieren, Java, Datenstrukturen, Informatik, Softwareentwicklung, Algorithmen und Datenstrukturen

Meistgelesene Beiträge zum Thema Software