我正在开发一个创建自定义LinkedList泛型类的程序,我希望能够通过在对象上调用stream()来从中生成流。我查看了文档,并没有找到任何可以帮助我做到这一点的东西,比如实现的接口(类似......可迭代,比较,可比)。我正在考虑创建一个流方法,该方法返回一个带有Arrays.stream的流,来自通过遍历链表并分配元素生成的数组。这没关系,这个泛型类我想让它的参数约束到两个没有继承关系的类。有点像<人或外侨>可以做到这一点
答案 0 :(得分:0)
我假设你的自定义LinkedList类有一个iterator()方法。我还假设它有一个恒定的时间size()方法。做出这些假设,您可以使用以下代码实现stream()方法:
public Stream<T> stream() {
Iterator<T> it = iterator();
int characteristics = 0; // see characteristics docs in [Spliterator][1]
Spliterator<T> spliterator = Spliterators.spliterator(it, size(), charactistics); // see [Spliterators][2]
return StreamSupport.stream(spliterator, false); // see [StreamSupport][3]
}