2012-04-09 10 views
0

ich eine QuickSort zu tun haben, ein Array von „Steine“ zu schaffen, meine Frage ist: i die QuickSort machen will nur über die „ValueySize“ Feld Hexe ist das Ergebnis der „Wert/Größe“ Gibt es eine Möglichkeit, ein sortiertes Array von Steinen nach Wertgröße zu erhalten?QuickSort über ein Feld eines Objekts

Vielen Dank im Voraus;)

public class Stein implementiert Comparable {

private float[] value; 
private float[] size; 
private float[] valueYSize; 

}

+0

Wollen Sie eine Reihe von Steinen haben (wie Sie in Ihrer Frage sagen) oder ein Array von Werten innerhalb der Klasse Stone (wie im Code geschrieben)? – Andre

+1

Wenn Sie eine Sammlung von Stoned zu haben bedeutet, müssen Sie die Methode compareTo (Comparable-Schnittstelle) implementieren, dann rufen Collections.sort auf Ihrer Sammlung – Andre

+0

ich mich geirrt, ich möchte eine Reihe von Steinen, sorry für das, ich glaube, ich reparierte es übrigens, eine dieser Antworten funktioniert !! :) – Santanor

Antwort

0

Sie die Sortiermethode aus der Klasse Arrays verwenden können:

float[] valueYSize  = //some operation...... 
float[] sortedValueYSize = Arrays.sort(valueYSize); 
+0

vielleicht bin ich heute ein bisschen blöd .... oder vielleicht habe ich es mir nicht richtig erklärt. Wenn ich ein Array von Stones in einer anderen Klasse verwende, wie kann ich die Sortierung vornehmen, wenn ich das in meinen Stones [] möchte, werden alle Objekte nach Wertgröße sortiert? – Santanor

+1

@Santanor Ich muss missverstanden haben. Wenn das das ist, was Sie tun wollen, müssen Sie die Methode 'compareTo()' definieren, die von der Implementierung von 'Comparable' kommt. Verwenden Sie dann 'Arrays.sort()' auf Ihrem Array von 'Stone'-Objekten. –

0

Wenn Ihre Klasse Vergleichbare implementiert, müssen Sie die Methode compareTo in Ihrer Klasse außer Kraft zu setzen - wenn Sie das tun, geben Sie den Unterschied zwischen dem valueYSize der 2 verglichen Objekte.