[Java] Collection PriorityQueue

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Phame, 2. November 2009 .

Schlagworte:
  1. 2. November 2009
    Collection PriorityQueue

    Hi!

    Ich hab eigentlich eine einfach Aufgabenstellung: "Ein Wartezimmer in dem immer der als erster drankommt, der den ersten Termin hat, dabei soll es egal sein wann er kommt. Und es wird einfach nur der Name der Person ausgegeben".

    Wie es im Prinzip funktionieren soll begreife ich schon, nur versteh ich jetzt nicht ganz wie ich "Collection PriorityQueue" anwenden kann.

    Für alle Antworten die nützlich sind gibt es eine BW!


    Mfg
    Phame
     
  2. 2. November 2009
    AW: Collection PriorityQueue

    Also soweit ich das verstanden habe willst du ne einfache FIFO(First in First out) Liste?
    Warum dann PriorityQueue?

    Falls du diese aufjedenfall nehmen musst, müssen alle Element die selbe Priorität haben! Könnte evtl später nützlich sein um "Notfälle" mit höherer Priorität zu versehen, damit sie schneller durchkommen!

    mehr infos zu Priority Queue gibts z.B. hier -> http://www.tk.uni-linz.ac.at/download/se2ue_ss2009_a05_priorityqueue.pdf

    mfg
    Joker
     
  3. 2. November 2009
    AW: Collection PriorityQueue

    Hmmm das is bei einer PriorityQueue ist das gar nicht so leicht, da diese die Objekte in der natürlichen Ordnung ausgibt. D.h. bei Strings lexikografisch sortiert und nicht nach der Reihenfolge...
    Das was du brauchst wäre eher eine Klasse die First in First out naturgemäß unterstützt also zum Beispiel ArrayList, LinkedList oder Vector.
    Ansonsten müsste man entweder einen neuen Comparator für die Strings schreiben oder halt eine eigene Klasse schreiben die Strings benutzt und vom Interface Comparable abgeleitet ist, wie diese dann aussieht müsste man sich dann genauer überlegen (Klasse mit String und int als priority dürfte reichen).

    Nun kommts halt darauf an wenn ihr die Klasse PriorityQueue unbedingt benutzen müsst wirds schwerer... deswegen werd ich erstmal auf ne Antwort warten, bzw vllt fällt dir ja selber ein wie man das lösen könnte
     
  4. 2. November 2009
    AW: Collection PriorityQueue

    Nunja in der Aufgabenstellung steht nunmal, dass ich eine PriorityQueue nehmen muss, deshalb kann ich nichts anderes verwenden.

    Und ja es soll dann auch Notfälle geben

    BW habt ihr beiden schonmal.
     
  5. 3. November 2009
    AW: Collection PriorityQueue

    Naja dann muss man nen bischen Tricksen.
    Ich würde eine neue Klasse Patient einrichten mit den Argumenten String name und int priorität.
    Diese Klasse muss vom Interface Comparable abgeleitet werden und somit die methode int compare(T t1, T t2) überschreiben. Da allerdings diese im direkten Zusammenhang mit boolean equals() steht sollte diese auch überschrieben werden.
    Den Konstruktor könnte man nun auf unterschiedliche Weisen erstellen zum Beispiel könnte man die Priority Queue (Überleg dir Warum das sinnvoll ist) mit übergeben oder nur einen Zahlenwert für die Priorität.
    Genauso könnte man eine Methode erstellen mit der man Notfälle einbaut (d.h. die Priorität des Patienten niedriger setzt als alle anderen in der Priority Queue).

    Für eine schöne Ausgabe sollte man vielleicht noch die Methode String toString() überschreiben.

    Nun ich will dir nicht den ganzen Code hinschreiben, kostet mir nur Zeit und bringt dir keinen Lerneffekt, aber ich denke ich habe schon ein paar wichtige Tipps gegeben mit denen es nun leichter fallen sollte das Programm zu schreiben
     
  6. 3. November 2009
    AW: Collection PriorityQueue

    aber genau deswegen priority queue, weil die patienten zu unterschiedlichen zeiten kommen.
    ich denke nicht, dass man den terminplan speichern soll, sondern eher sozusagen die patientenliste im Wartezimmer.

    folgende tabelle(die zahlen ist die reihenfolge an der die patienten kommen, uhrzeit wann sie termin haben)

    sagen wir es ist 13:05

    patient 1 13:00
    patient 2 14:00
    patient 3 12:59

    bei FiFo wäre jetzt patient 1 an der reihe
    nach priority queue patient 3, denn niedrigere uhrzeit hat höhere priorität!

    edit: und notfälle haben dann eben die höchste priorität!
     
  7. 3. November 2009
    AW: Collection PriorityQueue

    Hast vollkommen Recht. Hab da wohl ein wenig flott gelesen! Also gehts mit FiFo wirkliche nicht :-/, sry für die annahme in meinem ersten post!

    mfg
    Joker
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.