min(Comparator)是否等于sort(Comparator).findFirst()?

Jin*_*won 4 java java-8 java-stream

用a Stream<T>和a Comparator<? super T>,

Stream<T> s;
Comparator<? super T> c;
Run Code Online (Sandbox Code Playgroud)

s.sorted(c).findFirst();
Run Code Online (Sandbox Code Playgroud)

等于相当于

s.min(c);
Run Code Online (Sandbox Code Playgroud)

das*_*ght 9

从逻辑上讲,两个代码片段都返回相同的结果.但是,sorted需要更多的时间和更多的内存,因为基于比较器的排序是O(n*log n)并且需要O(n)空间以避免在适当的位置进行排序,而搜索min是O(n),并且需要O(1 ) 空间.