1

Sortedset 可以自动排序,但在某些情况下,它不能按我的意愿工作。例如。我将字符串日期值存储在一个排序集中,但显然它没有按我的预期工作。这就是我得到的:

[03-10-2013, 06-10-2013, 08-10-2013, 09-10-2013, 18-09-2013, 24-09-2013, 29-09-2013]

有没有什么好方法可以不用引入比较器来解决这个问题?

4

2 回答 2

11

最好的方法是避免使用字符串来表示日期。使用具有自然时间顺序的日期。仅在必要时将日期转换为字符串,即将日期显示给用户或将其存储在文件中。

它不起作用的原因是 String 的自然排序是字典顺序。所以“18-09-2013”​​在“03-10-2013”​​之后,只是因为在字典顺序中“1”在“0”之后。

于 2013-10-09T11:42:47.053 回答
1

使用一组:

  • 日期对象java.util.Date
  • 以毫秒为单位的时间java.lang.Integer

这些对象可以更容易地进行比较。

于 2013-10-09T11:49:34.360 回答