我有一个列表“unSortedDateList”,其中日期存储为CSV。 日期以下列格式存储(MM / dd / yyyy) 2012年1月10日,2011年2月10日,2011年1月9日 * (注意:日期存储为COMMA分离值) *
我编写了一个函数,它从列表中获取这些日期并在ASC中对它们进行排序并存储在sortedList中。
TreeMap<Date, Date> sortedMap = new TreeMap<Date, Date>();
for (Date theDate : unSortedDateList)
{
sortedMap.put(theDate.getTime(), theDate);
}
List<Date> sortedList = (List<Date>) sortedMap.values();
该程序正在抛出强制转换异常。
你能帮我解决一下我在做错的事吗?
答案 0 :(得分:2)
您在日期字段中输入了较长的值。那不得不崩溃。
sortedMap.put(theDate.getTime(), theDate); //getTime() is long
但您的地图为Date
TreeMap<Date, Date> sortedMap
答案 1 :(得分:2)
为什么不用
对列表进行排序Collections.sort(unsortedDateList)
直接?
答案 2 :(得分:1)
引用SE6的java文档:
values()返回此映射中包含的值的Collection视图。
它不返回List:列表是Collection,但反过来不一定是真的。
编辑:下次请提供一个堆栈跟踪以及发生错误的确切行。