加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java中对数组列表进行排序

发布时间:2020-12-15 02:01:47 所属栏目:Java 来源:网络整理
导读:我有下课.在这里,Iris是另一个具有某些属性的类. public class Helper { Iris iris; double distance; public Helper(Iris iris,double distance) { this.iris = iris; this.distance = distance; }} 我想对这个数组列表(即List Helper helperList)进行排序,
我有下课.在这里,Iris是另一个具有某些属性的类.

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);
                 }
            }
        }
}

有人可以提出解决方案吗?

解决方法

为什么不让Helper类实现Comparable接口,然后使用Collections类提供的内置排序方法.

Collections.sort(helperList)

我认为这样可以解决问题.另外,这种排序方法很稳定.

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List%29

http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

实现Comparable接口:

public class Helper implements Comparable{

    Iris iris;
    double distance;

    public Helper(Iris iris,double distance) {
        this.iris = iris;
        this.distance = distance;
    }

    public int compareTo(Helper other) {
        return new Double(this.distance).compareTo(new Double(other.distance));

    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读