Stream array in reverse order / Java

m528fe3b  于 12个月前  发布在  Java
关注(0)|答案(2)|浏览(81)

反转有序流

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

使用helper结构

final Object[] arr; // assume this is filled
List<Integer> list = Arrays.asList(arr);
Collections.reverse(list);
list.stream();

字符串
是否只有通过逆序遍历数组来避免开销(例如创建额外的List)?

3ks5zfa0

3ks5zfa01#

对数组进行流式处理,然后反转流的顺序是否会导致开销
是的
规避开销(例如,创建一个额外的List)的唯一方法是以相反的顺序迭代数组吗?
是的,请使用IntStream执行此操作:

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

字符串

wfauudbj

wfauudbj2#

Java 21将reversed方法添加到List中,List是原始列表的视图,顺序相反,因此您可以将其与Arrays.asList结合使用(创建数组的List视图):

final Object[] arr; // assume this is filled
Stream<Object> stream = Arrays.asList(arr).reversed().stream();

字符串

相关问题