私は配列リストオブジェクトを持っていますが、ある日に重複したIDがあればデータを削除したいです。条件javaで重複リストオブジェクトを削除する
これは私のコード
public static void main(String[] args) {
ArrayList<UniqueCompletedChat> al = new ArrayList<UniqueCompletedChat>();
al.add(new UniqueCompletedChat("2015-11-01", "D01"));
al.add(new UniqueCompletedChat("2015-11-01", "D01"));
al.add(new UniqueCompletedChat("2015-11-01", "D02"));
al.add(new UniqueCompletedChat("2015-11-01", "D01"));
al.add(new UniqueCompletedChat("2015-11-02", "D01"));
al.add(new UniqueCompletedChat("2015-11-02", "D02"));
al.add(new UniqueCompletedChat("2015-11-02", "D03"));
al.add(new UniqueCompletedChat("2015-11-02", "D02"));
al.add(new UniqueCompletedChat("2015-11-02", "D02"));
al.add(new UniqueCompletedChat("2015-11-03", "D01"));
List<UniqueCompletedChat> result = new ArrayList<UniqueCompletedChat>();
Set<String> titles = new HashSet<String>();
for (UniqueCompletedChat u : al) {
if (titles.add(u.getIdDoctor()) || titles.add(u.getDate())) {
result.add(u);
}
}
for(UniqueCompletedChat u : result){
System.out.print(u.getDate() + " || ");
System.out.print(u.getIdDoctor());
System.out.println("");
}
}
class UniqueCompletedChat {
private String date;
private String idDoctor;
public UniqueCompletedChat(String date, String idDoctor) {
this.date = date;
this.idDoctor = idDoctor;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getIdDoctor() {
return idDoctor;
}
public void setIdDoctor(String idDoctor) {
this.idDoctor = idDoctor;
}
}
である、これは私の期待に到達するためにどのように私のコード
私の目標期待結果
から出力されましたか?これを解決するためのエレガントな方法はありますか?
Javaがに対処する唯一の二つの方法があります日時処理:(a)面倒で、混乱し、欠陥のある古い方法(java.util.Date、java.util.Calendar、java.text.SimpleDateFormatなど)、(b)mod java.nemanクラスでは、きれいで強力な方法です。 java.timeパッケージに含まれていない日時クラスは避けてください。 –