java - Comparable 不排序对象

标签 java android comparator comparable

我很难根据其属性整理我的对象

我有这个患者对象列表,我想根据他们的姓氏对其进行排序,但它根本没有对它们进行排序。你能告诉我我做错了什么吗?

下面是一些相关的代码。

患者.java

import java.util.Comparator;

public class Patient implements Comparable<Patient> {
    String fname, lname, mname, ID;

    public static class OrderByLastName implements Comparator<Patient> {

        @Override
        public int compare(Patient p1, Patient p2) {
            return p1.lname.compareTo(p2.lname);
        }
    }

    public static class OrderByID implements Comparator<Patient> {

        @Override
        public int compare(Patient p1, Patient p2) {
            return p1.ID.compareTo(p2.ID);
        }
    }

    @Override
    public int compareTo(Patient another) {
        // TODO Auto-generated method stub
        return 0;
    }
}

MainActivity.java

public class PatientList extends ActionBarActivity {

String[] newFName = {"Mark","Andy","Bryan"};
String[] newLName = {"Uy","Igy","Nator"};
String[] newMName = {"Wi","Menos","Pat"};
String[] newID = {"3","5","1"};
ArrayList<Patient> patientList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    createPatientList();
    sortPatient(1);

}

private void createPatientList() {
    patientList = new ArrayList<Patient>();
    for (int i = 0; i < newFName.length; i++) {
        Patient patient = new Patient();
        patient.lname = newLName[i];
        patient.fname = newFName[i];
        patient.mname = newMName[i];
        patient.ID = newID[i];
        patientList.add(patient);
    }
}

private void sortPatient(int order){
    switch (order) {
        case 1:
            Collections.sort(patientList, new Patient.OrderByLastName());
            break;
        case 2:
            Collections.sort(patientList, new Patient.OrderByID());
            break;
        default:
            break;
        }
}
}

最佳答案

据我所知,您的代码应该可以工作,我怀疑单元测试可以证明这一点。如果您的问题是您看不到更新,则可能是您的 View 更新逻辑有问题。

关于java - Comparable 不排序对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055272/

相关文章:

java - 更改方法名称会添加不需要的 XML block

java - 解码期间无效的 XML 字符

java - 如何从 java.sql.Connection 对象中检索密码

java - 如何使用 Comparator 接口(interface)减去集合而不是覆盖 equals

java - 我可以在不实现 Comparable 的情况下使用 Comparator 吗?

java - 如何在 Java 模块中指定源和目标兼容性?

android - 如何管理不同大小的布局

android - SDK 中未安装构建工具(已安装 sdk 工具)

java - 当键盘出现时使整个布局变小

java - java中如何使用Comparator对二维数组进行排序