Hallo zusammen,
Ich möchte untenstehenden Code von Array nach ArrayList umwandeln.
Leider habe ich "noch" keine Ahnung wie ich das Anstellen soll.
Kann mir jemand helfen?
Ich möchte untenstehenden Code von Array nach ArrayList umwandeln.
Leider habe ich "noch" keine Ahnung wie ich das Anstellen soll.
Kann mir jemand helfen?
Java:
public class Hanoi{
public static void main(String []args){
int n=4;
new Hanoi().start(n); //Rufe Methode start(n) von Klasse Hanoi auf.
}
public void start(int n){
String []turme = showSteps(n);//N-Ringe werden im Array angelegt
System.out.println("Türme von Hanoi - Step by step!");
System.out.println("_________________________________________");
/*
* Führe solange diese Schleife aus, bis i kleiner als das Array Turm ist.
*/
for(int i=0;i<turme.length;i++){
System.out.println("Schritt "+(i+1)+"" +
": Verschiebe Ring von "+turme[i].charAt(0)+" " + //Liefere Char Index=0 von String des Array turme
"nach "+turme[i].charAt(1));//Liefere Char Index=1 von String des Array turme
}
System.out.println("_________________________________________");
System.out.println("Ende des Programms");
}
/*
*
*/
public String []changeString(String []array,char a, char b){
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length();j++){
if(array[i].charAt(j)==b){
array[i]=array[i].substring(0,j)+a+array[i].substring(j+1);
} else if(array[i].charAt(j)==a){
array[i]=array[i].substring(0,j)+b+array[i].substring(j+1);
}
}
}
return array;
}
/*
*
*/
public String []showSteps(int n){//Wie viele Ringe sind hier?
String []data={"A","B","C"}; // Array mit 3 Werten für die Ringe A, B und C
String []Array=new String[(int)(Math.pow(2,n))-1];
for(int i=1;i<=Array.length;i=i*2+1){
int middle=(i-1)/2;
Array[middle]="AC";
String []tempArray=new String[middle];
for(int left=0;left<middle;left++){
tempArray[left]=Array[left];
}
tempArray=changeString(tempArray,'C','B');
for(int o=0;o<middle;o++){
Array[o]=tempArray[o];
}
tempArray=changeString(tempArray,'B','A');
tempArray=changeString(tempArray,'A','C');
for(int o=middle+1;o<i;o++){
Array[o]=tempArray[o-middle-1];
}
}
return Array;
}
}