Java 使用具有特定状态的POJO类对数组列表进行排序
我的状态是“正在咨询”、“排队等候”。所有数据都来自json API,并使用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
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())));
}
});