为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2021-12-10 14:50:44
我想使用“IntStream”来执行回程。所以,普通的IntStream.range样子:IntStream.range(1, 10)    .forEach(System.out::println);但我需要,像这样:IntStream.range(10, 1)    .forEach(System.out::println);如何实现?
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

检查这些示例


import java.util.stream.IntStream;


// Generate an IntStream in Decreasing Order in Java

class 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);

    }

}


查看完整回答
反对 回复 2021-12-10
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

一种方法是计算反向数:


IntStream.range(1, 10)

         .map(i -> 10 - i)

         .forEach(System.out::println);

输出


9

8

7

6

5

4

3

2

1

请记住,range是上排独占的,因此range(1, 10)生成数字 1-9。我在这里假设你range(10, 1)应该返回相同的数字,但按降序排列,所以仍然是“upper”-exclusive,这现在意味着排除第一个值,而不是最后一个值。


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信