2012-04-09 61 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之间的差异。