我有一个类,其中包含另一个名为Iris的类,具有一些属性。
我想对这个数组列表(即List < Helper > helperList)按照距离参数进行降序排序。我编写了以下方法,但它没有起作用。
public class Helper {
Iris iris;
double distance;
public Helper(Iris iris, double distance) {
this.iris = iris;
this.distance = distance;
}
}
我想对这个数组列表(即List < Helper > helperList)按照距离参数进行降序排序。我编写了以下方法,但它没有起作用。
public void sort(){
for(int k=0; k < helperList.size(); k++)
{
double distance = helperList.get(k).distance;
for(int l=0; l < helperList.size(); l++)
{
Helper temp = helperList.get(l);
if( distance < temp.distance )
{
helperList.set(l, helperList.get(k));
helperList.set(k, temp);
}
}
}
}
有人能提供一个解决方案吗?
[1, 2]
。当k = 0, l = 1
时,因为list.get(1) > 1
,所以你进行了交换,得到[2, 1]
。然后当k = 1, l = 0
时,你再次进行交换。你应该只将每个元素与其一侧的元素进行比较。 - Daniel Fischerk+1
开始内部循环,它就可以工作。然而,正确的方法是创建一个符合你需求的Comparator
并使用库排序。或者实现其中一个经典的排序算法。 - Daniel Fischer