倒序流数组/Java

问题描述 投票:0回答:2

反转有序流

流式传输数组然后反转流的顺序是否会导致开销(例如,需要首先完全流式传输数组,然后向后迭代它)

使用辅助结构

final Object[] arr; // assume this is filled List<Integer> list = Arrays.asList(arr); Collections.reverse(list); list.stream();
以相反顺序迭代数组是规避开销(例如创建附加列表)的唯一方法吗?

java arrays java-stream reverse
2个回答
3
投票
流式传输数组然后反转流的顺序是否会产生开销

是的。

以相反顺序迭代数组是规避开销(例如创建附加列表)的唯一方法吗?

是的,用

IntStream

来做:

IntStream.range(0, arr.length).mapToObj(i -> arr[arr.length-1-i])
    

0
投票
Java 21 将

reversed

 方法添加到 List
 中,这是原始列表中相反顺序的视图,因此您可以使用它:

final Object[] arr; // assume this is filled Stream<Object> stream = Arrays.asList(arr).reversed().stream();
    
© www.soinside.com 2019 - 2024. All rights reserved.