这种时间的复杂度是多少? Java哈希图

时间:2019-04-22 21:16:58

标签: java sorting hashmap time-complexity

我想知道这种对哈希图进行排序的排序算法的时间复杂度是什么。

private HashMap<Pair<T,T>,Double> sortMapOfEdges(HashMap<Pair<T,T>,Double> mapOfEdges){

    HashMap<Pair<T,T>, Double> sortedMapOfEdges = 
            mapOfEdges.entrySet().stream()
            .sorted(Entry.comparingByValue())
            .collect(Collectors.toMap(Entry::getKey, Entry::getValue,
                                      (e1, e2) -> e1, LinkedHashMap::new));

    return sortedMapOfEdges;

}

谢谢。

1 个答案:

答案 0 :(得分:0)

这里唯一的排序是通过行

完成的
.sorted(Entry.comparingByValue())

因此,这里的真正问题是流的.sorted方法的运行时间是多少。我相信这将取决于一些内部细节,但是通常这些内置的排序方法是接近最佳的,因此我的猜测是O(n * log(n))。