在探索Scala的标准库时,我发现TreeSet
根本不会覆盖min
操作,因此此操作源自TraversableOnce
特征,只使用reduceLeft
。所以我假设它只扫描整个集合,使其成为线性复杂度操作,即使TreeSet
的性质是它的head
将是最小元素。但official Scala docs声称它的复杂性为O(log n),这是有意义的,因为它只需要将树遍历到最左边的元素。
所以问题是:我是否正确假设head
将始终返回最小元素(当然,根据排序),并且min
操作实际上是一个线性操作,从而使得官方Scala docs不正确?