InsertElementInArray

Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!

Moderator: Algorithmen und Datenstrukturen

Forumsregeln
Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!
Hans123
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 12. Jun 2017 13:23

InsertElementInArray

Beitrag von Hans123 » 20. Jun 2017 12:02

Servus,

ich bekomme beim obigen Algorithmus eine ArrayIndexOutOfBoundsException, allerdings weiß ich nicht, wo genau diese auftritt.

Code: Alles auswählen

{  
    int size = getArray().length +1;
    if(pos > size){
        size = pos;
    }
    int k =0;  // für getArray
    int l = 0; //für arr
    Listobject<T>[] arr = new Listobject[size];
    
    for(int i = 0; i<getArray().length +1; i++){
        
        if(k == getArray().length){
            arr[pos] = element;
            break;
        }
        else if(getArray()[k] == null && l == pos){
            arr[l] = element;
            l++;
            k++;
        }
        else if (l == pos){
            arr[l] = element;
            l++;
        }
        else if (getArray()[k]!= null){
            arr[l] = getArray()[k];
            k++;
            l++;
        }
        else{
            k++;
        }
    }
    setArray(arr);
    return arr; 
}

Ich bin mir sicher, es gibt auch leichtere Wege das zu lösen, aber ich habe hier jetzt für die beiden Arrays jeweils einen Laufindex eingeführt die je nach Situation erhöht werden. Da die for Schleife aber nur bis Array.length läuft und in diesem Fall direkt die erste If Abfrage das Ganze beendet und ich die Laufindizes in jeder Iteration maximal um eins erhöhe sehe ich nicht, wie oder wo diese Exception auftreten könnte?

Zurück zu „AuD: Programmieraufgaben“