I set myself a programming challenge using Java 8 lambda expressions and,
well, I was unable to solve it! So I am turning here to see if anyone can
figure out the solution.
The Problem
Generate an array of arrays containing all permutations of integers, 0 - 4,
starting with single values 0 - 4, then pairs of values 00,01,02 etc, then
triples, then quadruples, as follows:
Results
int[][] results;
result[0] = {0}
result[1] = {1}
result[2] = {2}
result[3] = {3}
result[4] = {4}
result[5] = {0,0}
result[6] = {0,1}
result[7] = {0,2}
result[8] = {0,3}
result[9] = {0,4}
result[10] = {1,0}
result[11] = {1,1}
result[12] = {1,2}
result[13] = {1,3}
result[14] = {1,4}
...
{4,3}
{4,4}
{0,0,0}
{0,0,1}
{0,0,2}
...
{4,4,4}
{0,0,0,0}
{0,0,0,1}
...
{4,4,4,4}
The constraint
You must use only Java 8 lambda expressions. This might be quite easy to do
with for loops, but try doing it with lambda expressions.
The best I have been able to do so far is to generate all pairs:
Integer[][] result = IntStream.rangeClosed(0, 4)
.boxed()
.flatMap(x -> IntStream.rangeClosed(0, 4).mapToObj(y -> new Integer{}{x,y
}))
.toArray(Integer[][]::new);
If you can, write the code to generate all the required arrays.
--
You received this message because you are subscribed to the Google Groups "Java
Posse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/javaposse.
For more options, visit https://groups.google.com/d/optout.