排序我有一个记录对象如何对象的列表与某些特定属性
public Record{
double simiADD;
}
我有记录对象的名单,我想排序simiADD。 simiADD的价值较低的记录应该首先发生,并且更多simiADD值的记录应该在排序列表中稍后出现。我想用分离的方法做这个操作,而不是在Record类中实现比较器。
排序我有一个记录对象如何对象的列表与某些特定属性
public Record{
double simiADD;
}
我有记录对象的名单,我想排序simiADD。 simiADD的价值较低的记录应该首先发生,并且更多simiADD值的记录应该在排序列表中稍后出现。我想用分离的方法做这个操作,而不是在Record类中实现比较器。
如果你不想定义记录类中的比较功能:
Collections.sort(recordList, new Comparator<Record>() {
public int compare(Record object1, Record object2) {
return Double.compare(object1.simiADD, object2.simiADD);
}
}
);
阅读JavaDoc for Comparable接口。 http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html。还是你的意思是“不想实现Comparable”而不是“Comparator”?
其实相当实用,这对维护你的代码很有好处。 Collections中的排序方法基于它,所以它工作得很好。
我假定你的意思是你不想在你的课堂上实现“Comparable”接口。使用比较器和收藏的排序静态方法:
import java.util.*;
public class EmpSort {
static final Comparator<Employee> SENIORITY_ORDER =
new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
return e2.hireDate().compareTo(e1.hireDate());
}
};
// Employee database
static final Collection<Employee> employees = ... ;
public static void main(String[] args) {
List<Employee>e = new ArrayList<Employee>(employees);
Collections.sort(e, SENIORITY_ORDER);
System.out.println(e);
}
}
这里是那么简单的使用任何类型的方法将使用覆盖的compareTo为Record类的代码示例,
public class Record implements Comparable<Record> {
public double simiADD;
public int compareTo(Record r) {
return Double.compare(this.simiADD, r.simiADD);
}
}
。
什么是你的问题? –