Hallo,
sitze gerade an einem Problem, bei dem ich nicht weiter komme. Bin Java Beginner. Wie kann ich folgende for-schleife richtig abbilden? Das Problem liegt darin, dass ich bestimmte Elemente entferne, wodurch die for-Schleife nicht mehr funktioniert (ArrayIndexOutOfBoundsException)
Hier das KSKB
Mein Lösungsvorschlag würde mit Iterator gehen, doch dann erhalte ich auch eine ArrayIndexOutOfBoundsException.
Wo habe ich einen Fehler gemacht?
Danke euch,
Jan
sitze gerade an einem Problem, bei dem ich nicht weiter komme. Bin Java Beginner. Wie kann ich folgende for-schleife richtig abbilden? Das Problem liegt darin, dass ich bestimmte Elemente entferne, wodurch die for-Schleife nicht mehr funktioniert (ArrayIndexOutOfBoundsException)
Hier das KSKB
Java:
import java.util.*;
class LabelType
{
public LabelType(int a, int b) //
{
r_a = a;
r_wa = b;
}
public int r_a;
public int r_wa;
}
public class KSKB {
public static void main (String[] args) {
int anzknoten = 2;
ArrayList liste[] = new ArrayList[anzknoten]; //Eine Zahl mehr, da Knoten 0 nicht vorhanden
for (int i=0;i<=anzknoten;i++){
liste[i] = new ArrayList();
}
LabelType la = new LabelType(0,0);
liste[0].add(la);
LabelType lb = new LabelType(1,2);
liste[0].add(lb);
LabelType lc = new LabelType(2,3);
liste[0].add(lc);
int a=1;
while (a<=anzknoten) {
for (int g=0; g<liste[a].size();g++) {
for (int h=g+1; h<liste[a].size();h++){
LabelType aux_g = (LabelType) liste[a].get(g);
LabelType aux_h = (LabelType) liste[a].get(h);
if (aux_g.r_a<=aux_h.r_a && aux_g.r_wa<=aux_h.r_wa){
liste[a].remove (aux_h);
}
else{
}
}
}
a++;
}
}
}
Mein Lösungsvorschlag würde mit Iterator gehen, doch dann erhalte ich auch eine ArrayIndexOutOfBoundsException.
Java:
int a=1;
while (a<=anzknoten) {
Iterator <LabelType> itr_1 = liste[a].iterator();
while(itr_1.hasNext()) { //Ersatz für 1. for-Schleife
LabelType aux_g = itr_1.next();
for (Iterator <LabelType> iter_2 = liste[a].iterator(); iter_2.hasNext();) { //Ersatz für 2. for-Schleife
LabelType aux_h = iter_2.next();
if (aux_g.r_a<aux_h.r_a && aux_g.r_wa<=aux_h.r_wa){
iter_2.remove();
}
}
}
a++;
}
Danke euch,
Jan