Вот пример, как вы спросили:
// myArray with 1,2,3,...,n values
int[] myArray = new int[] {1, 2, 3};
// Convert it in a List to use it through guava Collections
List<Integer> vals = Ints.asList(myArray);
// Compute all permutations using Guava Collections API
Collection<List<Integer>> orderPerm = Collections2.orderedPermutations(vals);
// Convert the result in List of Lists to get indexed values by number (to display them, easier to access than using an Iterator)
List<List<Integer>> myTwoDimensionalArray = new ArrayList<>(orderPerm);
// Loop over the result to display the 2 dimensional array
for (int dim1 = 0 ; dim1 < myTwoDimensionalArray.size() ; dim1++) {
String dim2 = "";
// Here I build a string to display the numbers without the brackets (not necessary)
for (int i = 0 ; i < myTwoDimensionalArray.get(dim1).size() ; i++) {
if (i > 0) {
dim2 += ",";
}
dim2 += myTwoDimensionalArray.get(dim1).get(i);
}
// Displaying the 2 dimensional results
System.out.println(dim1 + " : " + dim2);
// Uncomment here to display with brackets directly
// System.out.println(dim1 + " : " + myTwoDimensionalArray.get(dim1));
}
Просто чтобы прояснить, вот импорт:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.google.common.collect.Collections2;
import com.google.common.primitives.Ints;
Отображает этот вывод:
0 : 1,2,3
1 : 1,3,2
2 : 2,1,3
3 : 2,3,1
4 : 3,1,2
5 : 3,2,1
Это в скобках:
0 : [1, 2, 3]
1 : [1, 3, 2]
2 : [2, 1, 3]
3 : [2, 3, 1]
4 : [3, 1, 2]
5 : [3, 2, 1]
Я импортировал 2 баночки в своем проекте (используя Maven), чтобы использовать коллекции Guava:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>26.0-jre</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-collections</artifactId>
<version>r03</version>
</dependency>
Если вы не знаете, как использовать Maven, просто загрузите эти jar-файлы из репозитория maven и скопируйте их в рабочее пространство, чтобы добавить их в путь к классам Java.
Если вы не работаете в рабочей области (например, Eclipse), просто скомпилируйте ваш класс, используя опцию javac -classpath
, чтобы добавить эти jar-файлы в компиляцию.
Вот документация по компиляции javac: https://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/tooldocs/solaris/javac.html