Сгенерировать стрим последовательность чисел от 0 до n, и распечатать первые 20 которые деляться без остатка на 14
Я понимяю как это сделать с помощью цикла, но не совсем понял как использовать Stream.
Ответы (1 шт):
Автор решения: Alexandr
→ Ссылка
Как-то так:
package com.somepackage;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int n = 1000;
int[] result =
IntStream.range(0, n)
.filter(i -> i % 14 == 0)
.limit(20)
.toArray();
System.out.println(Arrays.toString(result));
}
}
Результат:
[0, 14, 28, 42, 56, 70, 84, 98, 112, 126, 140, 154, 168, 182, 196, 210, 224, 238, 252, 266]
В случае, если необходимо использовать бесконечную последовательность и вывести только первые 14, то код будет таким:
package com.somepackage;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int[] result =
IntStream.iterate(0, i -> i + 1)
.filter(i -> i % 14 == 0)
.limit(14)
.toArray();
System.out.println(Arrays.toString(result));
}
}