2012-04-09 24 views
0

我必須做一個快速排序來創建一個「石頭」的數組我的問題是:我想讓快速排序只通過「ValueySize」字段女巫是「價值/大小」有沒有辦法通過valueYSize獲得一個有序的數組?快速排序在一個對象的字段

在此先感謝;)

公共類石器可比{

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

}

+0

你的意思是在你的代碼中寫入Stone(如你在你的問題中說的)或者Stone類中的一組數值嗎? – Andre 2012-04-09 22:48:37

+1

如果你的意思是擁有一個Stoned集合,你需要實現compareTo方法(Comparable接口),然後調用Collections.sort對你的集合 – Andre 2012-04-09 22:48:37

+0

我錯了,我想要一串石頭,對不起,我想我順便說一句,這個答案的作品之一! :) – Santanor 2012-04-09 22:56:13

回答

0

您可以使用從Arrays類排序方法:

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

也許我今天有點愚蠢....或者我沒有正確解釋我。如果y在其他類中使用了一個Stones數組,我該如何進行排序,如果我想在我的Stones []中使用valueYSize對所有對象進行排序? – Santanor 2012-04-09 22:45:40

+1

@Santanor我一定誤解了。如果這是你想要做的,你需要定義來自實現「Comparable」的'compareTo()'方法。然後在'Stone'對象的數組上使用'Arrays.sort()'。 – 2012-04-09 22:59:44

0

如果您的類實現了Comparable,那麼您需要重寫類中的compareTo方法 - 當您這樣做時,請返回兩個比較對象的valueYSize之間的差異。