getSortedUsers()
是否总是返回 getUsers()
的有序流 独立于 getUsers()
-集合类型?
public Set<User> getUsers(){
// unordered collection type
HashSet<User> set = new HashSet<>();
set.add(..);
set.add(..);
set.add(..);
return set;
}
// Is the stream only sorted if getUsers() is hold within a sortable collection type?
public Stream<User> getSortedUsers(Comparator<User> comp){
return getUsers().stream().sorted(comp);
}
最佳答案
getSortedUsers()
返回的Stream
将始终排序,这是通过调用sorted(comp)
保证的。 Stream
的来源是什么并不重要。
现在,如果您决定将该 Stream
的元素收集到某个 Collection
中,顺序可能会保留也可能不会保留,具体取决于 的类型您选择的集合
。如果将元素收集到 HashSet
中,就会丢失顺序。如果您收集到 TreeSet
、LinkedHashSet
或任何 List
,您将保持顺序。
关于java - 带比较器的有序流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902125/