如何在列表中对日期进行排序

时间:2012-01-19 18:31:12

标签: java sorting date

如何对列表中的日期进行排序?

我已经读过这可以通过使用TreeMap来实现,因为它是一个排序和可导航的地图,用于组织自平衡二叉树中的元素。但它也很贵。

我的问题是 - 实现结果的最佳和最有效的方法是什么?

1 个答案:

答案 0 :(得分:6)

这取决于。如果您想拥有“始终排序”的容器,那么TreeSet就是您的朋友。将另一个元素添加到TreeMap将是O(log(n)) - (非常好,比线性更快)。

如果您只需要对其进行一次排序(之后不添加元素),则只需将其放到ArrayList并使用sort()方法。它将是最佳的 - O(n log(n))

<强>更新

正如JB Nizet在评论中提到的,Set(TreeSet)不能包含重复项。 List(ArrayList)可以。
如果性能很重要并且有很多元素并且您需要存储允许重复的已排序元素,那么您可以将它存储在TreeSet中,但需要实现计数(add()element.count++ ,例如,remove()element.count--