如何在流 API 中使用回溯范围?

我想使用“IntStream”来执行回程。


所以,普通的IntStream.range样子:


IntStream.range(1, 10)

    .forEach(System.out::println);

但我需要,像这样:


IntStream.range(10, 1)

    .forEach(System.out::println);

如何实现?


汪汪一只猫
浏览 132回答 2
2回答

慕森卡

检查这些示例import java.util.stream.IntStream;// Generate an IntStream in Decreasing Order in Javaclass StreamUtils{    public static void main(String[] args)    {        int start = 2;  // inclusive        int end = 5;    // exclusive        IntStream.iterate(end - 1, i -> i - 1)                .limit(end - start)                .forEach(System.out::println);    }}

慕婉清6462132

一种方法是计算反向数:IntStream.range(1, 10)         .map(i -> 10 - i)         .forEach(System.out::println);输出987654321请记住,range是上排独占的,因此range(1, 10)生成数字 1-9。我在这里假设你range(10, 1)应该返回相同的数字,但按降序排列,所以仍然是“upper”-exclusive,这现在意味着排除第一个值,而不是最后一个值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java