有没有一种合理的方式可以从列表(特别是数组列表,但这并不重要)中获取有序流,该流以与原始列表中相反的顺序流元素?
我正在寻找一种解决方案,它不涉及在任何东西中缓冲数据(收集器、另一个列表、数组等,因为它们会复制容器,这是浪费的),也不使用Collections.reverse
(因为它修改了列表)。
到目前为止,我看到这里最干净的方法是实现我的自己版本的Spliterator
,它是ORDERED
并且倒序遍历列表,或者实现一个倒序迭代器,并在其上使用Spliterators.spliteratorUnknownSize(iterator,ORDERED)
。
请注意,此问题与Java 8 stream reverse order不同:那个问题问如何翻转流(在一般情况下是不可能的),并且答案提供了某种方式来翻转源(我不想这样做),然后流式传输该翻转源。 翻转源的成本为O(N),如果可能的话,我想尽可能避免它。