簡體   English   中英

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

[英]Check if a list of dates contains a particular date

我正在尋找一個更好的方法來檢查是否有一個java.util.Date對象ListArrayList ,它返回給我)。 場景是,我返回了一個日期List ,我想知道我手頭的日期是否在我返回的日期List中。

目前我正在做的是循環List並使用JodaTime來比較日期。

注意:在比較日期(而不是時間部分)時,只應考慮日期部分。

編寫自己的比較器 您可以使用它來執行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
}

(在iPad上用胖手指打字,搖晃3個月大睡覺,為輕微錯誤道歉)

如果兩個java.util.Date對象解析為相同的毫秒,則它們是相等的()。 所以你可以使用List.contains():

http://docs.oracle.com/javase/6/docs/api/java/util/List.html#contains%28java.lang.Object%29 http://docs.oracle.com/javase/6/docs /api/java/util/Date.html#equals%28java.lang.Object%29

List<Date> dates = ...
Date targetDate = ...
if (dates.contains(targetDate)) { ... }

或者,如果您知道列表已排序,則可以使用Collections.binarySearch()

http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#binarySearch%28java.util.List,%20java.lang.Object%29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM