2017-04-13 1 views
0

"In consultation"、 "Waiting in Queue"のようなステータスがあります。 json APIからのすべてのデータをPojoクラスを使用して配列リストに追加します。この配列リストをConsultationステータスで並べ替える方法特定のステータスの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; 
} 
} 
+0

どのJavaバージョンを使用していますか? –

+2

[Comparable](https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)を実装することも、カスタム[Comparator](https://docs.oracle)を作成することもできます.com/javase/7/docs/api/java/util/Comparator.html)を参照してください。次に、Patient_Get_Setオブジェクトを保持するArrayListの[Collections](https://docs.oracle.com/javase/6/docs/api/java/util/Collections.html)のsortメソッドを使用できます。 – BrickTop

答えて

2

に従ってください、あなたのカスタムの必要性のために使用することができますどのようなコードである -

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()))); 
      } 
     }); 

あなたはPOJOクラスがしたい注文と同じ順序でstatusListの要素を追加しますソートされる。

+0

その良いfine.ty –

+0

素晴らしいソリューションが、私は'statusList'をcompareメソッドの外部に作成する –

0

あなたの配列リストオブジェクトをソートするCollectionsを使用することができます。

たとえば、あなたのリストは次のとおりです。

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

次に、以下のコードを使用してリストを並べ替えることができます。

Collections.sort(list, new Comparator<Patient>() { 
     @Override 
     public int compare(final Patient object1, final Patient object2) { 
      return object1.getConsultation_status().compareTo(object2.getConsultation_status()); 
     } 
    }); 

OR

あなたはJavaバージョン1.8を使用している場合は、コードの下に使用してリストを並べ替えることができます。

list.stream() 
.sorted((object1, object2) -> object1.getConsultation_status().compareTo(object2.getConsultation_status())); 
+0

答えをくれてくれてありがとうが、私は待ち行列と待っているinconsultationのような患者を並べ替えたい。それは可能ですか –

+0

@DaminiMehraあなたは完全なリストを2つの別々のリストに分けたいと思っています。 –

+0

いいえ、私はただ一つのリストが必要ですが、最初のアイテムの状態は領収書であり、別のステータスです –

関連する問題