Первое, что вам нужно сделать, это выяснить, сколько возможных комбинаций может существовать. В этом случае, так как вы выбираете 2 номера:
3 на 5
3 для 1
3 на 2
3 за 4
5 за 3
5 за 1
5 на 2
5 за 4
и так далее и тому подобное. Поскольку у каждого числа есть 4, другое число может быть в паре с, мы можем вычислить сумму, выполнив следующее уравнение: numberOfElementsInVector * 4. В этом случае мы получаем 20. это означает, что нам нужно выполнить цикл только 20 раз. Нам также нужно отслеживать, какие результаты мы уже собрали. Для этого мы будем хранить строки в ArrayList. Теперь мы сделаем следующий двойной цикл for:
ArrayList<String> results = new ArrayList<>();
for(int i = 0; i < sol.length; i++){
for(int j = 0; j < sol.length; j++){
String result = sol[i] + "," + sol[j] + "";
if(!results.contains(result) && sol[i] != sol[j]){
results.add(result);
}
}
}
System.out.printLn(results.toString());
Этот код будет систематически проходить через любую длину массива и даст вам все 2 комбинации чисел.