简体   繁体   English

所有 stream 源的列表以及它们是有序的还是无序的

[英]List of all stream sources and whether they are ordered or unordered

Does anyone have, or know of, a list of all possible stream sources, eg collections (including specific types), arrays, functions, I/O, etc, and whether they produce an ordered or unordered stream?有没有人拥有或知道所有可能的 stream 来源的列表,例如 collections(包括特定类型)、arrays、函数、I/O 等,以及它们是否产生有序或无序的 stream?

For example, Arrays.stream in the API does not specify whether the stream returned is ordered or unordered?比如API中的Arrays.stream没有说明返回的stream是有序的还是无序的? Also, what about the CharSequence chars() method, and data structures such as TreeSet?另外,CharSequence chars() 方法和 TreeSet 等数据结构呢?

Streams are implemented sanely according to the principle of least surprise in all sources by the JDK. Streams 是根据 JDK 在所有源中的最小意外原则理智地实现的。

This means that if a stream source has any sort of sensical order, then the stream is correspondingly sensically ordered.这意味着如果 stream 源具有任何类型的合理顺序,则 stream 相应地合理排序。 The only major sources of unordered streams in the JDK, therefore, are from HashSet s, HashMap views, and Random .因此,JDK 中无序流的唯一主要来源是HashSet s、 HashMap视图和Random

Every other stream that "should" be ordered is ordered: CharStream.chars() , LinkedHashSet.stream() , Files.lines , and so on. “应该”订购的所有其他 stream 是订购的: CharStream.chars()LinkedHashSet.stream()Files.lines等。

I found this list [here][1] I think it can help answering your question:我在 [此处][1] 找到了这个列表,我认为它可以帮助回答您的问题:

 <table> <thead> <tr> <th align="left"></th> <th align="center"><code>ORDERED</code></th> <th align="center"><code>DISTINCT</code></th> <th align="center"><code>SORTED</code></th> <th align="center"><code>SIZED</code></th> <th align="center"><code>NONULL</code></th> <th align="center"><code>IMMUTABLE</code></th> <th align="center"><code>CONCURRENT</code></th> <th align="center"><code>SUBSIZED</code></th> </tr> </thead> <tbody> <tr> <td align="left"><code>Stream.of</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>Arrays.asList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>HashSet</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="left"><code>ArrayList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>ArrayDeque</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>ArrayBlockingQueue</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>ArrayDeque</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>ConcurrentLinkedDeque</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>ConcurrentLinkedQueue</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>DelayQueue</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>CopyOnWriteArraySet</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>CopyOnWriteArrayList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>ConcurrentSkipListSet</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>LinkedBlockingDeque</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>LinkedBlockingQueue</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>LinkedHashSet</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>LinkedList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>Stack</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>RoleUnresolvedList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>RoleList</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>PriorityQueue</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>PriorityBlockingQueue</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>LinkedTransferQueue</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> </tr> <tr> <td align="left"><code>SynchronousQueue</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> <tr> <td align="left"><code>TreeSet</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="left"><code>Vector</code></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"><code>I</code></td> </tr> </tbody> </table>
I - Injects. 我 - 注射。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM