[英]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.