【发布时间】:2014-10-09 10:06:37
【问题描述】:
我有这门课:
public class Media {
double supporto;
double i_m;
String idSentence;
public Media(double supporto,double i_m,String idSent){
this.supporto=supporto;
this.i_m=i_m;
this.idSentence=idSent;
}
public double getSupporto(){
return this.supporto;
}
public double getI_m(){
return this.i_m;
}
public String getIdSentence(){
return this.idSentence;
}
public String toString(){
return this.supporto+" - "+this.i_m+" - "+this.idSentence;
}
}
并在 ArrayList 文本中添加这些值:
ArrayList<Media> m=new ArrayList<Media>();
m.add(new Media(0.2545,0.2365,"id002"));
m.add(new Media(0.8745,0.4658,"id005"));
m.add(new Media(0.1599,0.6580,"id0010"));
如何按第一类 Media 的值的降序对这个数组进行排序? 我想得到这个订单:
0.1599,0.6580,"id0010"
0.2545,0.2365,"id002"
0.8745,0.4658,"id005"
编辑
我是这样解决的:
public class Media implements Comparable<Object>{
double supporto;
double i_m;
String idSentence;
public Media(double supporto,double i_m,String idSent){
this.supporto=supporto;
this.i_m=i_m;
this.idSentence=idSent;
}
public double getSupporto(){
return this.supporto;
}
public double getI_m(){
return this.i_m;
}
public String getIdSentence(){
return this.idSentence;
}
public String toString(){
return this.supporto+" - "+this.i_m+" - "+this.idSentence;
}
@Override
public int compareTo(Object arg0) {
if(this.supporto==((Media) arg0).getSupporto()) return 0;
else if((this.supporto)>((Media)arg0).getSupporto()) return 1;
else return -1;
}
}
在 main 方法中,我订购了 m ArrayList:
Collections.sort(m);
【问题讨论】:
-
向我们展示您尝试实现排序的代码。
-
使用 Comparable 或 Comparator 对 Object 进行排序
-
实现 Comparable 或 Comparator 并使用 Collections.sort() 方法
标签: java