jro*_*z66 20 java iterator data-structures java-8 spliterator
SpliteratorJava 8中的类有什么好的用例场景?
通常,应用程序开发人员不会Spliterator直接使用API.但是,如果您要提供API并实现自己的类似集合的类,则可以实现Spliterator以使您的集合适应StreamAPI.这支持功能方法,并行处理和其他功能.
例如,我编写了一个实用程序来枚举网络中的IP地址,由CIDR表示法指定.它不是真正的收藏品; 也就是说,它不会同时携带内存中所有地址的列表,只包含网络号和网络掩码.但是通过暴露一个Spliterator,它可以很容易地适应一个Stream.(每个Spliterator只跟踪其网络共享中的当前IP地址和最大地址.)
核心Java运行时的另一个示例是DirectoryStream遍历文件系统.
用例示例:"将迭代器转换为流"
public static <T> Stream<T> iteratorToFiniteStream(final Iterator<T> iterator) {
final Iterable<T> iterable = () -> iterator;
return StreamSupport.stream(iterable.spliterator(), false);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
917 次 |
| 最近记录: |