Метод getVariations используется для получения целых массивов, которые состоят из одного и того же количества значений в каждом, но в разных индексах. Все эти комбинации добавляются к arraylist под названием «комбинация», и он возвращает arraylist массивов. Но когда это используется в основном методеНе возвращает ArrayList массивов в java
int[] cp1 = { 1,5,4,3,2};
ArrayList<int[]> k1 = sol.getVariations(cp1);
for(int n=0; n<5 ; n++){
int[] ab = k1.get(3);
System.out.print(ab[n]);
}
k1 не содержит ожидаемых результатов. Но я не мог понять, что я здесь делаю неправильно. Когда в этом методе проверяется «комбинация» арраиста, она дает желаемые результаты. Он содержит массивы, которые были изменены и добавлены. Но использование возвращаемого arraylist метода вне метода не может выполнить работу.
Цените много, если кто-то может помочь.
public ArrayList<int[]> getVariations(int[] copy){
int[] cp1 = copy;
int[] comb = new int[5];
Boolean b = false;
Boolean d = false;
Boolean e = false;
int m = 0;
ArrayList<int[]> combination = new ArrayList<int[]>();
for(int i=0; i<N ; i++){
aloop: for(int j=0; j<N ; j++){
for(int k=0; k<N ; k++){
if(k==i) {
b = true;
e = true;
}
if(k==i+1){
d = true;
e = false;
}
if(k==j){
b = false;
e = true;
continue;
}
if(b && j>=i)
comb[k] = cp1[k+1];
if(!b && j>=i)
comb[k] = cp1[k];
if(e && j<i){
comb[k] = cp1[k-1];
}
if((j<i || d) && j<i && !e){
comb[k] = cp1[k];
}
}
comb[j] = cp1[i];
b = false;
e = false;
d = false;
for(int h=0 ; h<N ; h++){
if(comb[h] == cp1[h]){
b = true;
}
else{
b = false;
break;
}
}
if(b){
b = false;
continue aloop;
}
combination.add(m , comb);
m++;
for(int n=0; n<N ; n++){
int[] ab = combination.get(m-1) ;
System.out.print(ab[n]);
}
System.out.println("");
}
}
System.out.println("");
return (combination);
}
Не могли бы вы перепроверить вашу проблему с помощью более короткого и понятного образца кода. Боюсь, я просто не понимаю вашу проблему, и код выше не так-то просто, чтобы отменить инженер ... – jwatkins
, пожалуйста, предоставьте примерный вывод. то, что вы ожидаете, из этого трудно найти. – Nishant
Что такое N для? – Christian