PriorityQueue mit Gewicht

Kavar

Mitglied
Hi,
ich versuche gerade eine PriorityQueue dafür zu nutzen Zahlen nach anderen Zahlen zu sortieren (falls ihr dafür eine bessere Idee habt immer her damit)

Also das konkrete Problem:
ich habe die Zahlen in einem Mehrdimensionalen Array und möchte die Zahlen in sort[j][1] nach denen in sort[j][0] sortieren.

Meine Idee dazu war es einfach die Prority Queue mit Gewichtung zu verwenden.
Also eigentlich so ähnlich wie hier link

Ich hab nur noch nicht ganz begriffen wie ich das so umbauen kann dass das ganze bei mir Funktioniert.

Noch ein Bsp zum Schluss:
Start:
sort[j][1] = 32 2 5 6 1 3
sort[j][0] = 1 2 3 4 5 6

Ziel:
sort[j][1] = 1 2 3 5 6 32
sort[j][0] = 5 2 6 3 4 1

Wäre super wenn mir wer helfen könnte ;)
 
Zuletzt bearbeitet:

turtle

Top Contributor
Ich halte wenig davon in mehreren Arrays Werte zusammenzuhalten, die etwas miteinander zu tun haben und dies dadurch auszudrücken, dass die Werte an gleicher Stelle in zwei Arrays stehen...

Warum baust du nicht eine Klasse, in der die Werte, die zusammen gehören, zusammenfast?
So etwas nennen Mathematiker Tupel und es ist leicht das selber zu bauen. In deinem Beispiel sind es wohl die Tupel
  • 32/1
  • 2/2
  • 5/3
  • 6 /4
  • 1/5
  • 3/6
Dann ist deine Aufgabe "nur", die Tupel-(Liste/Array) zu sortieren. Selbst dafür bietet Java bereits das Comparable-Interface. Also musst du in deiner Tupel-Klasse die Methode compareTo implementieren und dabei realisiert du, wann ein Tupel vor oder nach einem anderen Tupel sortiert werden soll.
 
Zuletzt bearbeitet:

Kavar

Mitglied
Das Problem dabei ist, dass ich die Werte danach auch wieder einzeln brauche und es ja ziemlich umständlich wäre sie erst zusammen zu fassen und dann wieder zu trennen.
Aber ansonsten eine gute Idee
 

turtle

Top Contributor
dann wieder zu trennen.

??? :bahnhof:

Du musst nicht trennen, weil du mit Tupel arbeitest und nicht mit Einzelwerten. Außerdem kannst du auf die Einzelwerte zugreifen, wenn deine Tupel-Klasse entsprechende getter() anbietet.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben