gpt4 book ai didi

java - Collection的reverseOrder方法的时间复杂度

转载 作者:行者123 更新时间:2023-11-29 07:25:24 24 4
gpt4 key购买 nike

我有一个文件列表,我想根据上次访问时间降序排列这些文件。以下 2 种方法中更好的方法是什么:

  1. 编写一个自定义的比较器,它具有逆序比较的逻辑

  2. 编写一个客户比较器,它有升序比较的逻辑,然后在调用方方法中调用Comparator.reversed()

我更喜欢#1,因为 reversed() 将再次花费 O(n) 时间,其中 n 等于列表的大小。我想知道这里的人的意见。

最佳答案

所有 Comparator.reversed() 所做的是通过为目标 Comparator 创建一个新的包装对象来颠倒参数的顺序,该对象按自然顺序排序。它比较 (b, a) 而不是 (a, b)。它不会将列表反转作为自然顺序排序后的最后一步。

排序列表的成本将是相同的。如果您的数据很大并且已经预先排序,排序方向将很重要,但对于小型集合,它没有实际区别。

关于java - Collection的reverseOrder方法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54152340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com