Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用具有特定状态的POJO类对数组列表进行排序_Java_Android_Arrays_Json_Arraylist - Fatal编程技术网

Java 使用具有特定状态的POJO类对数组列表进行排序

Java 使用具有特定状态的POJO类对数组列表进行排序,java,android,arrays,json,arraylist,Java,Android,Arrays,Json,Arraylist,我的状态是“正在咨询”、“排队等候”。所有数据都来自json API,并使用Pojo类将所有数据添加到数组列表中。然后如何根据协商状态对数组列表进行排序 病人类别: public class Patient_Get_Set implements Serializable { private String fullName; private String age; private String waitTime; private String sex; private String patient

我的状态是“正在咨询”、“排队等候”。所有数据都来自json API,并使用Pojo类将所有数据添加到数组列表中。然后如何根据协商状态对数组列表进行排序

病人类别:

public class Patient_Get_Set implements Serializable {
private String fullName;
private String age;
private String waitTime;
private String sex;
private String patientID;
private String gender;
private String dateOfBirth;
private String phoneNo;
private String Diagnosis;
private String Email;
private String token_id;
private String priority;
private String consultation_status;
private String case_number;

public String getCase_number() {
    return case_number;
}

public void setCase_number(String case_number) {
    this.case_number = case_number;
}

public String getConsultation_status() {
    return consultation_status;
}

public void setConsultation_status(String consultation_status) {
    this.consultation_status = consultation_status;
}

public String getPriority() {
    return priority;
}

public void setPriority(String priority) {
    this.priority = priority;
}

public String getToken_id() {
    return token_id;
}

public void setToken_id(String token_id) {
    this.token_id = token_id;
}

public String getConsultationstatus() {
    return consultationstatus;
}

public void setConsultationstatus(String consultationstatus) {
    this.consultationstatus = consultationstatus;
}

private String consultationstatus;

public String getEmail() {
    return Email;
}

public void setEmail(String email) {
    Email = email;
}

public String getVisitorType() {
    return visitorType;
}

public void setVisitorType(String visitorType) {
    this.visitorType = visitorType;
}

private String visitorType;


public String getDiagnosis() {
    return Diagnosis;
}

public void setDiagnosis(String diagnosis) {
    Diagnosis = diagnosis;
}

private String patientJsonArray;

public void setFullName(String fullName) {
    this.fullName = fullName;
}

public void setAge(String age) {
    this.age = age;
}

public void setWaitTime(String waitTime) {
    this.waitTime = waitTime;
}

public String getFullName() {
    return fullName;
}

public String getAge() {
    return age;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String getSex() {
    return sex;
}

public String getWaitTime() {
    return waitTime;
}


public void setPatientID(String patientID) {
    this.patientID = patientID;
}

public void setGender(String gender) {
    this.gender = gender;
}

public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public String getDateOfBirth() {
    return dateOfBirth;
}

public void setPhoneNo(String phoneNo) {
    this.phoneNo = phoneNo;
}

public String getPhoneNo() {
    return phoneNo;
}

public String getPatientID() {
    return patientID;
}

public void setPatientJsonArray(String patientJsonArray) {
    this.patientJsonArray = patientJsonArray;
}

public String getPatientJsonArray() {
    return patientJsonArray;
}


public String getGender() {
    return gender;
}
}

您可以使用
集合
对数组列表对象进行排序

例如,您的列表如下

ArrayList<Patient> list = new ArrayList<Patient>();

导入静态java.util.Comparator.Comparating

排序(列表,比较(MyObject::getStartDate))


将数据与java8中的比较进行比较以下是您可以根据自己的需要使用的代码-

Collections.sort(list, new Comparator<Patient_Get_Set>() {
        @Override
        public int compare(final Patient_Get_Set object1, final Patient_Get_Set object2) {
            List<String> statusList = new ArrayList();
            statusList.add("consultation");statusList.add("queue"); statusList.add("waiting");
            return new Integer(statusList.indexOf(object1.getConsultation_status())).compareTo(new Integer(statusList.indexOf(object2.getConsultation_status())));
            }
        });
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(最终患者获取集对象1,最终患者获取集对象2){
List statusList=新建ArrayList();
statusList.add(“咨询”);statusList.add(“队列”);statusList.add(“等待”);
返回新的整数(statusList.indexOf(object1.getConsultation\u status())。compareTo(新整数(statusList.indexOf(object2.getConsultation\u status()));
}
});

statusList
中按您希望pojo类排序的相同顺序添加元素。

您使用的是哪个java版本?您可以实现或创建一个自定义pojo排序状态。然后,您可以为您的ArrayList使用的排序方法,该ArrayList保存Patient\u Get\u Set对象。感谢您给出答案,但我想对Patient进行排序,就像不咨询一样,然后排队等待。怎么样possible@DaminiMehra表示您想将完整列表分为两个单独的列表,如排队和等待中的患者列表?否,我只需要一个列表,但第一个项目的状态是在咨询,然后另一个status@DeepakTripathi好的,过一段时间我会实现并告诉你它工作得很好。太好了,但我认为我们应该把用于创建
statusList
的代码放在比较方法之外
list.stream()
.sorted((object1, object2) -> object1.getConsultation_status().compareTo(object2.getConsultation_status()));
Collections.sort(list, new Comparator<Patient_Get_Set>() {
        @Override
        public int compare(final Patient_Get_Set object1, final Patient_Get_Set object2) {
            List<String> statusList = new ArrayList();
            statusList.add("consultation");statusList.add("queue"); statusList.add("waiting");
            return new Integer(statusList.indexOf(object1.getConsultation_status())).compareTo(new Integer(statusList.indexOf(object2.getConsultation_status())));
            }
        });