在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)); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |