![](/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.