diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java')
-rw-r--r-- | java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java new file mode 100644 index 000000000000..5a79aef6a18f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DeepNestedLambdaExpressionsNoFormalParams.java @@ -0,0 +1,70 @@ + +import java.util.List; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + + +abstract class Simplified { + public List<Integer> gerFirstTriangles() { + return flatMap(() -> flatMap(() -> map(z -> 1))).collect(Collectors.toList()); + } + + abstract <R> R flatMap(Supplier<R> mapper); + abstract <R> Stream<R> map(Function<Integer, R> mapper); +} + +class PythagoreanTriangles { + + static class Triplet<T,U,R>{ + private T t; + private U u; + private R r; + + public Triplet(T t, U u, R r){ + this.t = t; + this.u = u; + this.r = r; + } + + @Override + public String toString() { + return t.toString() + "," + u.toString() + "," + r.toString(); + } + } + + public void pythagoreanTriangles(Integer num){ + Stream<Integer> numbers = IntStream.rangeClosed(1,num).boxed(); + + Stream<Triplet<Integer, Integer, Integer>> triangles = numbers.flatMap(x -> { + return IntStream.rangeClosed(1, x).boxed().flatMap(y -> { + return IntStream.rangeClosed(1, y).boxed().filter(z -> { + return x * x == y * y + z * z; + }).map(z1 -> new Triplet<Integer, Integer, Integer>(x, y, z1)); + }); + }); + + triangles.forEach(System.out::println); + + } + + public List<Triplet<Integer, Integer, Integer>> gerFirstTriangles(long num){ + Stream<Integer> infinity = Stream.iterate(1, (n) -> n + 1); + return infinity.flatMap(x -> { + return IntStream.rangeClosed(1, x).boxed().flatMap(y -> { + return IntStream.rangeClosed(1, y).boxed().filter(z -> { + return x * x == y * y + z * z; + }).map(z1 -> new Triplet<Integer, Integer, Integer>(x, y, z1)); + }); + }).limit(num).collect(Collectors.toList()); + } + + + public static void main(String[] args) { + PythagoreanTriangles triangles = new PythagoreanTriangles(); + triangles.pythagoreanTriangles(10); + triangles.gerFirstTriangles(5l).forEach(System.out::println); + } +} |