检查日期列表是否包含特定日期

Oh *_*oon 4 java date jodatime

我正在寻找一种更好的方式检查是否一个Listjava.util.Date对象(ArrayList被返回给我).场景是,我返回了一个List日期,我想知道我手边List的日期是否在我返回的日期之内.

目前我正在做的是循环List并使用JodaTime来比较日期.

注意:在比较日期(而不是时间部分)时,只应考虑日期部分.

Mad*_*mer 8

编写自己的比较器.您可以使用它来执行Date对象的单独比较

public class MyDateComparator implements Comparator<Date> {
    protected static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");

    public int compare(Date d1, Date d2) {
        return DATE_FORMAT.format(d1).compareTo(DATE_FORMAT.format(d2));
    }
}


Date myDate = ...
List<Date> listOfDates = ...
Collections.sort(listOfDates);
int index = Collections.binarySearch(listOfDates, myDate, new MyDateComparator());
if (index >= 0) {
  // you found me
}
Run Code Online (Sandbox Code Playgroud)

(在iPad上用胖手指打字,摇晃3个月大睡觉,为轻微错误道歉)