![](/img/trans.png)
[英]Trying to pass a date as a path variable on postman however i get error
[英]I am trying to get the last date element in a set, however It keeps returning the first one?
下面是我的代碼,我獲取了Map的鍵,然后遍歷它們以獲取最后一個日期,但是它似乎沒有得到最后一個日期。 這行上的值Set<Date> keys = date.keySet();
是10.31.18和11.17.18。 我希望lastDate等於11.17.18,但等於10.31.18。 任何想法我在這里做錯了。
Map<Date, List<Integer>> date = date(dates, noPupils);
Set<Date> keys = date.keySet();
for (Iterator<Date> it = keys.iterator(); it.hasNext();) {
while (it.hasNext()) {
Date lastDate = it.next();
看來您遵循了這個答案 。 它已經說:
Collection
不一定是有序集合
在您的情況下,它不起作用, 因為
映射的順序定義為映射的集合視圖上的迭代器返回其元素的順序。 一些地圖實現(例如
TreeMap
類)對其順序做出特定的保證。 其他的(例如HashMap
類)則沒有。
顯然, Map
date
不能保證特定的訂單。 這也適用於Set<Date> keys = date.keySet()
,
因為這
返回此映射中包含的鍵的
Set
視圖...由映射支持...
但是解決方案很簡單,可以立即使用:
Date lastDate = Collections.max(keys);
由於Date
實現Comparable
因此可以立即工作。
您正在使用LinkedHashMap還是HashMap?
HashMap沒有排序的Map。 LinkedHashMap是有序地圖,保留插入順序。
但是我認為您應該使用TreeSet來對日期進行排序。 因此,您無需關心哪種Map :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.