簡體   English   中英

如何在java中獲取最新的一組日期變量

[英]How to get the most recent of a set of date variables in java

我有大約8個日期變量(java.util.Date)與不同的變量名稱。 選擇最近(最多)這些日期的最有效/最佳方式是什么?

理想情況下,將它們存儲在一個集合中 - 無論如何,這可能對您的程序設計有意義。 如果你有一個List對象,你可以這樣做:

Collections.max(dates);

將它們放在List中並使用Collections.max

由於您將所有日期存儲在不同的變量中,因此需要執行以下varargs函數並將所有變量傳遞給它:

protected Date getMostRecentDate(Date ... dates) {
    Arrays.sort(dates);
    return myDateArray[dates.length - 1];
}

然后你會這樣稱呼它:

Date mostRecent = getMostRecentDate(date1, date2, date3 /* etc.*/);

Date是可比較的,因此將它們全部添加到列表中,並使用Collections.max()查找最大(最新)日期:

List<Date> dates = new ArrayList<Date>();
dates.add(foo);
dates.add(bar);
... etc
Date latest = Collections.max(list);

實際上,如果你想獲得幻想,你可以這樣做:

public static <T extends Comparable<T>> T max(T... items) {
    return Collections.max(Arrays.asList(items));
}

並稱之為:

Date latest = MyClass.max(foo, bar, fred);

但它也適用於任何Comparable

Integer biggest = MyClass.max(3, 7, 4, 1);

將它們全部添加到集合中然后對其進行排序,或將它們添加到首先排序的集合中,例如PriorityQueue:

PriorityQueue<Date> dateQ = new PriorityQueue<Date>();
dateQ.add(someDate);
dateQ.add(anotherDate);
dateQ.add(thirdDate); // etc...
System.out.println("Max date is: " + dateQ.peek());

暫無
暫無

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

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