Java 排序日期方法中的强制转换异常

Java 排序日期方法中的强制转换异常,java,treemap,Java,Treemap,我有一个列表“unSortedDateList”,其中日期存储为CSV。 日期以以下格式存储(MM/dd/yyyy) 2012年10月1日、2011年10月2日、2011年9月1日*(注:日期存储为逗号分隔值)* 我已经编写了一个函数,它从列表中提取这些日期,并将它们排序到ASC中,然后存储到sortedList中 TreeMap<Date, Date> sortedMap = new TreeMap<Date, Date>(); for (Date theD

我有一个列表“unSortedDateList”,其中日期存储为CSV。 日期以以下格式存储(MM/dd/yyyy) 2012年10月1日、2011年10月2日、2011年9月1日*(注:日期存储为逗号分隔值)*

我已经编写了一个函数,它从列表中提取这些日期,并将它们排序到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();
TreeMap sortedMap=newtreemap();
for(日期:未排序的数据列表)
{
sortedMap.put(theDate.getTime(),theDate);
}
List sortedList=(List)sortedMap.values();
程序正在引发强制转换异常


你能告诉我我做错了什么吗?

你在日期字段中输入了一个长值。那一定会崩溃

sortedMap.put(theDate.getTime(), theDate); //getTime() is long
但是您的地图是
Date

TreeMap<Date, Date> sortedMap
TreeMap-sortedMap

您在日期字段中输入了一个长值。那一定会崩溃

sortedMap.put(theDate.getTime(), theDate); //getTime() is long
但是您的地图是
Date

TreeMap<Date, Date> sortedMap
TreeMap-sortedMap

引用SE6的java文档:

values()返回此映射中包含的值的集合视图

它不返回列表:列表是一个集合,但反过来不一定是真的


编辑:下次请提供stacktrace和发生错误的确切行。

引用SE6的java文档:

values()返回此映射中包含的值的集合视图

它不返回列表:列表是一个集合,但反过来不一定是真的


编辑:下次请提供stacktrace和发生错误的确切行。

为什么不使用

Collections.sort(unsortedDateList) 

直接?

为什么不使用

Collections.sort(unsortedDateList) 

直接?

Stacktrace?您是否已将数据解析为日期类型?然后可以使用Collections.sort(unsortedDateList),我相信Date.getTime()会返回一个long树,而TreeMap.values()不会返回列表。它返回一个集合。如果需要,可以从集合中创建一个新列表,但不要强制转换.Collections.sort(unsortedDateList)工作:),谢谢Peter.Stacktrace?您是否已将数据解析为日期类型?然后可以使用Collections.sort(unsortedDateList),我相信Date.getTime()会返回一个long树,而TreeMap.values()不会返回列表。它返回一个集合。如果需要,可以从集合中创建一个新列表,但不要强制转换。Collections.sort(unsortedDateList)有效:),谢谢Peter。正确,我已将其更改为日期。这仍然是一个例外。当这显然不是问题的关键点时,为什么人们会投票呢?@STT LCU不是关于得分点。它是关于识别代码中的问题(甚至没有被问到)。我甚至没有提到要点,只是这个答案与问题无关,即使它在自己的范围内确实是正确的。正确的,我已经将它改为日期。这仍然是一个例外。当这显然不是问题的关键点时,为什么人们会投票呢?@STT LCU不是关于得分点。这是关于识别代码中的问题(甚至没有被问到)。我甚至没有提到要点,只是这个答案与问题无关,即使它在自己的范围内确实是正确的。