迭代器在Java中, 在集合框架中用于, 以逐一检索元素。
一种流Java中的Java是来自数组或集合数据源的对象的管道。顺序流是其中对象在同一处理系统上的单个流中进行流水线处理的流。其他类型的流包括并行流, 其中对象在多处理系统上通过管道传输。
因此, 通常需要将迭代器用作顺序流。有许多方法可以完成, 包括:
使用分离器:
分流器与其他迭代器一样, 它们用于遍历源元素。源可以是集合, IO通道或生成器功能。
使用的方法:
类 | 修饰符和类型 | 方法 | 描述 |
---|---|---|---|
分流器 | 静态< T> 分隔符< T> | spliteratorUnknownSize(Iterator < ?扩展了T> 迭代器, 具有int特性) | 使用给定的Iterator作为元素源(没有初始大小估算值)创建一个Spliterator。 |
流支持 | 静态< T> 流< T> | 流(Spliterator < T> 分隔器, 布尔型并行) | 从分离器创建一个新的顺序或并行流。 |
程序:
//Java program to create a Sequential Stream
//from an Iteratorimport java.util.*;
import java.util.stream.*;
class GfG {
//Function to create a sequential Stream
//from an Iterator
public static <
T>
Stream<
T>
iteratorToSequentialStream(Iterator<
T>
itr)
{
//convert the iterator into a Spliterator
Spliterator<
T>
spitr = Spliterators.spliteratorUnknownSize(
itr, Spliterator.NONNULL);
//Convert spliterator into a sequential stream
//The second parameter "false" passess whether
//the stream is to be created parallel or not
return StreamSupport.stream(spitr, false );
}public static void main(String[] args)
{
Iterator<
String>
iterator = Arrays.asList( "G" , "E" , "E" , "K" , "S" ).iterator();
Stream<
String>
stream = iteratorToSequentialStream(iterator);
System.out.println( "Sequential Stream : " +
stream.collect(Collectors.toList()));
}
}
输出如下:
Sequential Stream : [G, E, E, K, S]
使用Iterable.Spliterator()
:分隔符是创建顺序流的关键。因此, 在该方法中, 也使用了Spliterator。但是在这种方法中, 将Spliterator的来源设置为
可迭代的
从创建
迭代器
【从Java中的迭代器创建顺序流】.
因此, 首先从Iterator创建Iterable。然后将分隔器传递给流()直接作为Iterable.spliterator().
程序:
//Java program to create a Sequential Stream
//from an Iteratorimport java.util.*;
import java.util.stream.*;
class GfG {
//Function to create a sequential Stream
//from an Iterator
public static <
T>
Stream<
T>
iteratorToSequentialStream(Iterator<
T>
itr)
{
//Get an iterable from itr
Iterable<
T>
itb = () ->
itr;
//Get spliterator() from iterable and then
//Convert into a sequential stream.
//The second parameter "false" passess whether the
//stream is to be created parallel or not
return StreamSupport.stream(itb.spliterator(), false );
}public static void main(String[] args)
{
Iterator<
String>
iterator = Arrays.asList( "G" , "E" , "E" , "K" , "S" ).iterator();
Stream<
String>
stream = iteratorToSequentialStream(iterator);
System.out.println( "Sequential Stream : " +
stream.collect(Collectors.toList()));
}
}
输出如下:
Sequential Stream : [G, E, E, K, S]
推荐阅读
- 使用JavaScript在HTML中创建范围滑块
- 使用Python-Tkinter创建选项卡式小部件
- 使用Apache POI在Java中的Excel文件中创建图纸
- u盘打开不了了,教您如何修好U盘
- 铭速u盘打开,教您戴尔怎样设置u盘打开
- usb打开,教您如何自制usb打开盘
- 自制u盘,教您如何迅速自制打开盘
- 联想u盘打开,教您联想笔记本怎样设置u盘打开
- u盘打开,教您如何自制u盘打开盘