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

Nam*_*ita 3 java sorting date

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

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

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

Mic*_*jer 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--例如).