How to Do N-Level Nested Loops in Java

Is there any way to do n-level nested loops in Java?

It sounds like you may want to look into recursion.

How do I break out of nested loops in Java?

Like other answerers, I'd definitely prefer to put the loops in a different method, at which point you can just return to stop iterating completely. This answer just shows how the requirements in the question can be met.

You can use break with a label for the outer loop. For example:

public class Test {
public static void main(String[] args) {
outerloop:
for (int i=0; i < 5; i++) {
for (int j=0; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");
}
}

This prints:

0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
Breaking
Done

how to avoid a nested for loop in this problem

Stream::flatMap should be used here to provide "access" to the lowest level of nested lists assuming the getters are implemented properly in the sample classes:

List<Test> input = ...; // define input data

List<AThirdObject> nestedList = input
.stream() // Stream<Test>
.flatMap(t -> t.getTestList().stream()) // Stream<AnotherObject>
.flatMap(ao -> ao.getAnotherList().stream()) // Stream<AThirdObject>
.collect(Collectors.toList());


Related Topics



Leave a reply



Submit