簡體   English   中英

帶比較器的有序流

[英]ordered stream with comparator

是否getSortedUsers()總是返回的orderd流getUsers() 獨立getUsers() -collection類型?

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 ,則順序可能會保留,也可能不會保留,具體取決於您選擇的Collection類型。 如果將元素收集到HashSet ,則會失去順序。 如果您收集到TreeSetLinkedHashSet或任何List ,則將保持順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM