我目前正在准备考试,并且正在执行以下任务:
跟随流生成普通的无限流:
Stream<Integer> infiniteStream = Stream.iterate(1, i -> i + 1);
是否存在同时生成正数和负数的方法或lambda表达式?
最佳答案
像这样的东西:
Stream<Integer> infiniteStream = Stream.iterate(1, i -> i > 0 ? -i : (-i + 1));
或者,如果您希望以
0
开头:Stream<Integer> infiniteStream = Stream.iterate(0, i -> i > 0 ? -i : (-i + 1));
当然,这也可以使用
IntStream
完成:IntStream infiniteStream = IntStream.iterate(0, i -> i > 0 ? -i : (-i + 1));