流式传输数组和然后反转流的顺序是否会导致开销(例如,需要先完全流式传输数组,然后再反向流式传输)?
final Object[] arr; // assume this is filled List<Integer> list = Arrays.asList(arr); Collections.reverse(list); list.stream();
字符串是否只有通过逆序遍历数组来避免开销(例如创建额外的List)?
3ks5zfa01#
对数组进行流式处理,然后反转流的顺序是否会导致开销是的规避开销(例如,创建一个额外的List)的唯一方法是以相反的顺序迭代数组吗?是的,请使用IntStream执行此操作:
IntStream
IntStream.range(0, arr.length).mapToObj(i -> arr[arr.length-1-i])
字符串
wfauudbj2#
Java 21将reversed方法添加到List中,List是原始列表的视图,顺序相反,因此您可以将其与Arrays.asList结合使用(创建数组的List视图):
reversed
List
Arrays.asList
final Object[] arr; // assume this is filled Stream<Object> stream = Arrays.asList(arr).reversed().stream();
2条答案
按热度按时间3ks5zfa01#
对数组进行流式处理,然后反转流的顺序是否会导致开销
是的
规避开销(例如,创建一个额外的List)的唯一方法是以相反的顺序迭代数组吗?
是的,请使用
IntStream
执行此操作:字符串
wfauudbj2#
Java 21将
reversed
方法添加到List
中,List
是原始列表的视图,顺序相反,因此您可以将其与Arrays.asList
结合使用(创建数组的List
视图):字符串