Hallo,
programmiere gerade einen Algorithmus, welcher generisch sein soll (also bei Änderung der Eingabedaten, muss kein Programmcode verändert werden).
Nun stehe ich vor folgendem Problem. Vielleicht habt ihr eine kreative Lösung dazu:
Am Anfang gebe ich eine Problemgröße an, z.B. 400. Eine Hashmap hm mit 400 Einträgen wird nun erzeugt, wobei jeder Eintrag aus einer arraylist besteht, welche im Laufe des Durchlaufs mit Zahlen gefüllt wird.
Nun möchte ich jedes einzelne Element der arraylist von der hm an den Stellen 100,200,300,400 abfragen und eine mathematische Umformung damit machen. (siehe java-code unten, wobei die hier angegebenen Umformungen "o[...]=..." vereinfacht sind)
Das Problem ist bei Änderung der Hashmap-Größe z.B. auf 300 oder 700, da ich dann zuerst for-schleifen löschen bzw. einbauen muss.
Wie könnte ich dieses Problem angehen?
programmiere gerade einen Algorithmus, welcher generisch sein soll (also bei Änderung der Eingabedaten, muss kein Programmcode verändert werden).
Nun stehe ich vor folgendem Problem. Vielleicht habt ihr eine kreative Lösung dazu:
Am Anfang gebe ich eine Problemgröße an, z.B. 400. Eine Hashmap hm mit 400 Einträgen wird nun erzeugt, wobei jeder Eintrag aus einer arraylist besteht, welche im Laufe des Durchlaufs mit Zahlen gefüllt wird.
Nun möchte ich jedes einzelne Element der arraylist von der hm an den Stellen 100,200,300,400 abfragen und eine mathematische Umformung damit machen. (siehe java-code unten, wobei die hier angegebenen Umformungen "o[...]=..." vereinfacht sind)
Das Problem ist bei Änderung der Hashmap-Größe z.B. auf 300 oder 700, da ich dann zuerst for-schleifen löschen bzw. einbauen muss.
Java:
int max = 0;
int o_gesamt = 0;
for (int i=0; i<hm.get(100).size();i++){
o[1]=hm.get(100).get(i)+1;
for (int i=0; i<hm.get(200).size();j++){
o[2]=hm.get(200).get(i)+1;
for (int k=0; k<hm.get(300).size();k++){
o[3]=hm.get(300).get(i)+1;
for (int l=0; l<hm.get(400).size();l++){
o[4]=hm.get(400).get(i)+1;
o_gesamt=o[1]+o[1]+o[2]+o[3];
if (o_gesamt >max){
max = o_gesamt;
}
}
}
}
}