2011-07-24 44 views
2

排序我有一个记录对象如何对象的列表与某些特定属性

public Record{ 
    double simiADD; 
} 

我有记录对象的名单,我想排序simiADD。 simiADD的价值较低的记录应该首先发生,并且更多simiADD值的记录应该在排序列表中稍后出现。我想用分离的方法做这个操作,而不是在Record类中实现比较器。

+0

什么是你的问题? –

回答

4

如果你不想定义记录类中的比较功能:

Collections.sort(recordList, new Comparator<Record>() { 
     public int compare(Record object1, Record object2) { 
      return Double.compare(object1.simiADD, object2.simiADD); 
     } 
    } 
); 
1

我假定你的意思是你不想在你的课堂上实现“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); 
    } 
} 
1

这里是那么简单的使用任何类型的方法将使用覆盖的compareTo为Record类的代码示例,

public class Record implements Comparable<Record> { 
    public double simiADD; 

    public int compareTo(Record r) { 
     return Double.compare(this.simiADD, r.simiADD); 
    } 
} 

相关问题